Spring Framework

스프링 프로젝트 만들기(초기설정법), Pom.xml, web.xml, Servlet-context.xml

꾸주니12 2022. 5. 21. 17:03

스프링 프로젝트 만들기

 

1.프로젝트 만들기 - 패키지

2.자바버전 바꾸기

3.한글깨짐방지

4.필요한 라이브러리 넣기

5.패키지 만들어줌 

6.db설정 

7.로직

 

————————————————————————

(04_Mvc1 기준)

1.레거시프로젝트 - 패키지 com.spring.main 

 

실행(서버키고 끄고 잘하기 )

 

 

2.자바버전 바꾸기 

  • 1. 프로젝트우클릭 - properties - project facets - 1.8
  • 2. pom.xml

 

 

3. web.xml.  한글깨짐 방지 (src - )

<!-- 서버가 켜지면 가장 먼저 읽게되는 파일 -->

<!-- 한글깨짐 : 특정한 요청이 오면 특정 클래스로 연결해서 한글 깨짐을 방지 -->

<filter>

<filter-name>encodingFilter</filter-name>

<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

<!-- 인코딩 종류 -->

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

<!-- 강제 인코딩 여부 -->

<init-param>

<param-name>forceEncoding</param-name>

<param-value>true</param-value>

</init-param>

</filter>



<!-- 어떤 요청이 왔을때 어떤 필터를 사용할 것인가? -->

<filter-mapping>

<filter-name>encodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

 

실행 - 서버끄고 

 

 

4. 패키지 만들어주기

(패키지4개 만들고 homecontroller class를 main.controller패키지에 끌어다가 넣어줌)

- 패키지명은 건들지말고 클래스명은 바꿔도 가능 

- homecontroller 클래스 이름 바꾸기 - JoinController 

 

 

실행/ 서버끄고 

 

 

(그다음 db설정  - 로직 )

5. 필요한 라이브러리 추가하기 (어떤게 필요한건지가 중요!!) - pom.xml

  • db관련된 라이브러리 추가 (36번째줄 <!-- AspectJ --> 위에  5개 추가)

<!-- 필요한 라이브러리는 여기에 추가(maven이 알아서 다운로드 받아준다.) -->

<!-- ojdbc : DB 접속을 도와 준다.-->

<dependency>

    <groupId>org.mariadb.jdbc</groupId>

    <artifactId>mariadb-java-client</artifactId>

    <version>2.7.2</version>

</dependency>







<!-- dbcp : 커넥션(DB에서 무언가를 할 수 있는 키) 풀 사용 -->

<dependency>

    <groupId>commons-dbcp</groupId>

    <artifactId>commons-dbcp</artifactId>

    <version>1.4</version>

</dependency>





<!--spring-jdbc :DB 연결과 SPRING을 연결 해 준다.  -->

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-jdbc</artifactId>

    <version>${org.springframework-version}</version>

</dependency>







<!-- mybatis : XML 쿼리문을 특정 인터페이스와 연결해 주는 기능 -->

<dependency>

    <groupId>org.mybatis</groupId>

    <artifactId>mybatis</artifactId>

    <version>3.4.6</version>

</dependency>



<!-- spring-mybatis : 마이바티스와 스프링을 연결해 준다. -->

<dependency>

    <groupId>org.mybatis</groupId>

    <artifactId>mybatis-spring</artifactId>

    <version>1.3.2</version>

</dependency>

 

 

 

6. Servlet-context.xml(서버에 요청이 들어오면 읽는 파일)

 

-1. DB 접속정보 추가 (접속주소, 아이디, 비밀번호 중요 )

-2 마이바티스 사용 설정 (mapper위치! 패키지 확인 ) com/spring/main/dao

-3 간편설정(빈체크여부, 패키지 정보) - 패키지명 적을 때 실제 패키지가 존재하는지 확인하기

없으면 에러남

- 빈체크여부는 - namespaces - mybatis-spring클릭 - 저장 (ctrl s)

 

<!-- DB 접속 정보 -->

<!-- 접속주소, 아이디, 비밀번호 꼭 확인!!  -->

<beans:bean name="datasource" class="org.apache.commons.dbcp.BasicDataSource">

<beans:property name="driverClassName" value="org.mariadb.jdbc.Driver"/>

<beans:property name="url" value="jdbc:mariadb://아이피주소:포트번호/db명"/>

<beans:property name="username" value="아이디"/>

<beans:property name="password" value="비번"/>

</beans:bean>









<!-- 마이바티스 사용 설정  -->

<!--  name = 필수요소(이름이 정해져 있음)/ id = 선택요소 (이름이 정해져 있지 않음) -->

<!-- 어떤 DB를 쓸건지 정보 제공 -->

<!-- 쿼리문(xml) 이 어디에 있는지 지정 -->

<!--  mapper 위치  -->

<beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<beans:property name="dataSource" ref="datasource"/>

<beans:property name="mapperLocations" value="classpath:com/spring/main/dao/*.xml"/>

</beans:bean>









<!-- 간편 사용 설정 (마이바티스 사용하는 패키지 범위)  -->

<!--  빈체크여부, 패키지 정보(실제 존재하는 패키지 인지도 꼭 확인)  -->

<mybatis-spring:scan base-package="com.spring.main.dao"/>

 

실행

서버끄고 

-디비 접속정보, mapper가 어딨는지 사용정보 등 디비 설정 끝-

 

 

 

7.로직 

다이어그램 확인하기 

joinpage에서 받은 파라메터 값을 컨트롤러 가 가져와야지 

join메서드 만들기 

 

서비스 패키지에 서비스 어노테이션 붙이고 만들기 

 

서비스를 컨트롤러 에서 쓰려면 autowired를 해야함 객체화할 필요없게 

컨트롤러의 조인메서드에 조인서비스 조인 메서드 호출하는데 그 결과값을 success에 담아준다 

이때 서비스에 join 메서드가 없어서 빨간줄생기고 Create method 해주기 (logger코드도 넣어주기 클래스 명확인하고 )

 

서비스에 파라메터값이 잘 넘어왔는지 logger.info  확인 

 

서비스에서 dao 가 필요한지 판단

필요하면 dao패키지에 JoinDAO(다이어그램엔 MemberDAO) 인터페이스 만들어주기! 

 

서비스에서 dao autowired  하기 

 

Dao 패키지에 Xml 만들기 (new - other - xml - member_mapper.xml)

이전에 했던거에서 선언문만 가져오기 -( 마이바티스 사용한다는선언문인가?)

 

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

 

 

 

 

Mapper namespace (어떤 인터페이스를 연동할건지) 자동완성으로 

Insert id는 인터페이스 joinDAO의 메서드명과 같다 

 

(인터페이스 - xml 연결)

 

Mapper.xml - joinDAO - service? 

 

디비에버에서 delete from member; 하면 지금까지 insert했던 내용다 사라짐 ~

 

회원성공 여부를 체크해주는 경고창을 띄울건데 

controller에서 msg변수에 값 넣어주고 model에 저장 (view로 보내는 객체)

jsp에선 script에 el태그 사용해서 변수 msg에 담아주고 if문으로 출력할지 코드 작성 

 

로직흐름이 다 이해가 안감 

Mapper 에서 서비스에서 컨트롤러로 

 

 

 


 

 

 

Pom.xml  : 라이브러리에 관련된 설정들 

 

  • 자바 버전 바꿔줌 
  • 라이브러리 다운받고싶슴니다- 필요한 라이브러리는 여기에 추가 - db연결과 관련된 라이브러리 추가 (maven이 알아서 다운로드 받아준다.)
  • Pom.xml 보면  jstl 다운받아져있음 그래서 jstl 관련 파일 갖다놓지않는거야 

 

 

web.xml : 서버가 켜지면 가장 먼저 읽게 되는 파일 / 한글깨짐 방지 

가지고있는 설정파일

-서버가 처음 켜지면 한번 읽는 파일(서버켜지면 한번) : /WEB-INF/spring/root-context.xml : 처음 열면 별 내용이 없음  

-서버에 요청이 들어오면 읽는 파일 (요청이 들어올때마다 읽는): /WEB-INF/spring/appServlet/servlet-context.xml

이 두개에 대한 설정과 경로가 써있음 

 

 

 

Servlet-context.xml : DB설정(접속정보,마이바티스 사용설정,간편사용설정)

  • @Controller 를 인식 할 수 있는 설정(@Service등...) / 어노테이션
  • 나중에 css나 이미지 등을 불러올 때 알아보자  
  • @Controller의 메서드에서 "home"을 반환하면 home.jsp로 갈 수 있었던 이유 - return에 페이지이름만 써줘도 갈수있어
  • 우리가 사용하는 어노테이션을 인식할 수 있는 범위 설정

 

  • Db설정해줌
  • 1. 접속정보 추가 (접속주소, 아이디, 비밀번호 중요 )
  • 2. 마이바티스 사용 설정 - 어떤db를쓸건지,쿼리문(xml)이 어디에 있는지 - (mapper위치! 패키지)
  • 3 간편사용설정- 마이바티스 사용하는 패키지 범위(빈체크여부, 패키지 정보)

 

 

 


db연결 관련된 라이브러리 

 

  • ojdbc : DB 접속을 도와 준다.(마리아db에 붙을 수 있는)
  • dbcp : 커넥션(DB에서 무언가를 할 수 있는 키) 풀 사용 (풀 빌려주고 반납하고)
  • spring-jdbc :DB 연결과 SPRING을 연결 해 준다. 
  • mybatis : XML 쿼리문을 특정 인터페이스와 연결해 주는 기능
  • spring-mybatis : 마이바티스와 스프링을 연결해 준다