ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 스프링부트 ] 1. STS4 환경설정
    스타터스 백엔드 3기 2023. 1. 19. 16:39

    [ 1. 설치 ]

    1. spring.io  =>  Projects  =>  Spring Tools4 클릭

     

     

     

    2. Spring Tools4 운영체제에 맞춰 다운로드

     

     

    3. C:/sba 밑으로 가져와서 압축 푼다.

    • 설치된다 (%)

     

     

     

     

    4. 스프링툴 ini 확인하기

    • 우리는 자바버전 17 있어서 버전 변경 하지 않아도 된다.

     

     

     

     


     

     

     

    [ 2. STS4 실행 ]

    1. workspace 만든다. (sba 밑의 workspace_boot)

     

     

     

     

    2. Spring Starter Project 실행한다.

     

     

     

     

    3. Spring Starter Project 생성하고 설정하기

    • jar war 선택해야 함
    • 웹 애플리케이션으로 동작시키기 위해서는 war가 필요하다. 

    체크한 부분만 변경함

     

     

    Spring Web 의존성을 선택한다.

     

     

     

     

     

    4. 프로젝트 생성 후 로딩

     

     

     

    5. ServletInitialzer를 Spring Boot App으로 Run 한다.

     

    와!

     

     

     

     

    6. 포트번호 변경 (application.properties)

    • 포트번호가 8080이라 다른 톰캣 프로그램과 겹칠 수 있다.
    • application.properties로 이동한다.
    • server.port를 사용해서 포트번호를 설정한다.

     

    8085포트로 실행되는 것을 알 수 있다.

     

     

     

     

    • properties의 주석은 #을 사용한다.
    • 저장했을 때 경고는 UTF-8로 저장할까? 라고 물어보는 것이다. 
    • YES!!!!!!!!!!!!!!!!!

     

     

     

     

    7. WEB-INF 폴더 생성 (view 설정)

    • spring boot는 view를 네가 알아서 설정해라 이런 거라서 webapp까지밖에 없다.
    • 조금더 view가 독립적이다.

     

    webapp 밑은 모두 생성한 것이다.

     

     

     

    • jsp를 view로 설정한다.
    • application.properties에 prefix와 suffix 설정을 추가한다.

     

     

     

     

    7-1. JSP를 사용하기 위한 설정

    • help - 이클립스 마켓플레이스 - web developer 검색
    • Eclipse Enterprise java and Web Developer Tools 설치
    • 설정하기

     

     

     

    • 이제 jsp 파일 보인다!

     

     

     

     

    7-2. 하지만 JSP 파일 냅다 에러

    • 이유? STS4(스프링부트?)는 jsp 읽을 수 없다. 
    • pom.xml에 jsp-api 의존성 추가해야 한다.

     

     

     

     


     

     

     

    test용 MVC 생성

    1. model

     

     

    2. Controller

     

     

     

    3. view

     

     


     

    resources 폴더가 없는데 어디서 사용해야 하나요?

    • src/main/resources 폴더를 사용하면 됩니다.
    • static 밑에 image / js(jquery) 넣어줌

    요렇게 넣어준당

     

     

     

     

    아 그런데. jsp파일에 제이쿼리를 넣고 싶어요. 어떻게 해야 하나요?

    • /second/src/main/resources/static/js/jquery-3.6.1.min.js 라고 적어야 한다.
    •  그런데 /second/src/main/resources/static까지는 스프링부트에서 당연하다고 생각한다.
    • 그래서 <script src="js/jquery-3.6.1.min.js"> 로 적으면 된다.

     


     

     

    servlet, jsp, jstl 사용하려면 라이브러리를 추가해야 한다.

    ajax, file upload 라이브러리가 내장되어 있다.

    • 스프링부트는 ajax 내장객체가 있어서 의존성을 추가할 필요가 없다.

     

     


     

     

    @ComponentScan

    • @ComponentScan에 아무것도 입력 안 하면 해당 패키지의 component를 모두 읽는다.
    • 아래처럼 기본패키지를 upload로 한다면 현재 패키지가 기본 대상이 되지 않기에 따로 적어줘야 한다.
    • 여기는 기본패키지와 upload 패키지를 사용하기에 두 가지를 적어줬다.

     

     

    @SpringBootApplication설정클래스파일, spring/tomcat 설정 할 수 있다.

    @Configuration : 설정만 한다.

     

     


     

     

    javax와 jakarta

    문제상황

    1. HttpServletResponse는 서블릿 객체이기에 사용하기 위해 javax.servlet 의존성을 pom.xml에 추가했다.

    2. 오류 발생

    3. 알고 보니 스프링이 Java EE => Jakarta EE로 마이그레이션(한 형식에서 다른 형식으로 이동)되며 javax.XXX 가 아닌 Jakarta.XXX를 사용해야 했다.

     

    1. 상황

     

     

    2. 오류 발생

     

     

    3. 오류 이유

     

     

     

    ++ 설정파일 만들기 !!!

    1. WebMvcConfigurer를 확장하는 인터페이스 생성

    2. 얘는 만약 upload/** 를 호출하면 file:///c:/upload/ 의 이미지를 반환해준다.

     

     


     

     

    프로젝트가 생성된 상태에서 편하게 의존성 추가하기 

    spring - add starters

     

     

     

     

    여기서 dependencies 를 편하게 추가할 수 있다!

    • myBatis와 JDBC와 MariaDB 의존성을 추가한다.

     

     

     

    • 아래의 dependency가 자동 추가된다. 

     

     

     

    application.properties

    • mybatis, config-location, mapper-locations 설정한다.
    • datasource에 드라이버이름, url, username, password를 설정한다.
    • config-location에 mybatis-config.xml을 설정한다.

    mapper-locations에 classpath:mybatis/mapper/*-mapping.xml를 설정한다.

    뒤에 s가 붙는 이유는 뒤에 -mapping.xml이 붙는 파일을 모두 찾을 거라 여러개라 그렇다.

     

     

     


     

    @Mapper

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.