Today I Learned
스프링 프로젝트 만들기(초기설정법), Pom.xml, web.xml, Servlet-context.xml 본문
스프링 프로젝트 만들기(초기설정법), 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 : 마이바티스와 스프링을 연결해 준다
'Spring Framework' 카테고리의 다른 글
스프링 프로젝트 만들기 5일차(게시판 만들기-redirect할 때 메세지 값 보내기 등) (0) | 2022.05.24 |
---|---|
스프링 프로젝트 만들기 4일차(@RequestParam 등등) (0) | 2022.05.23 |
스프링 프로젝트 만들기 2일차(Model, 스프링의 특징 등등) (0) | 2022.05.21 |
스프링 프로젝트 만들기 3일차(select문 resultType, session,dto 등등) (0) | 2022.05.21 |
[Spring Framework] mvc패턴이란 (0) | 2022.05.19 |