고래씌
[Spring] 0. Spring 환경설정 본문
1. 아파치 메이븐 다운로드
① 클릭하여 다운로드 받기!
② zip파일 안에 있는 apche-maven-3.9.6 파일을 /dev폴더로 옮긴 후, repository 폴더 생성
=> conf 폴더안에 있는 setting.xml 파일 vscode로 열기
③ 주석으로 된 localRepository를 주석을 풀고, 다음과 같이 수정하기!
④ https://github.com/spring-attic/toolsuite-distribution/wiki/Spring-Tool-Suite-3 사이트 접속 후, 3.9.14버전에서 맨 첫번째꺼 클릭하여 설치
⑤ 7-zip 이용해서 압축풀고, /dev폴더에 sts-bundle로 옮기기.
⑥ C:드라이브에 SpringWorkSpace 폴더 생성
⑦ STS.exe 실행
⑧ 서버세팅
⑨ Window - Preferences 에서 Spelling, WorkSpace, CSS Files, HTML Files, JSP Files, JSON Files 모두 UTF-8로 변경
⑩ 아파치 톰캣 추가
⑪ Maven 파일경로 설정
⑫ XML 설정(config와 mapper추가)
http://mybatis.org/dtd/mybatis-3-config.dtd
키값 : -//mybatis.org//DTD Config 3.0//EN
=> Mapper도 추가
⑬ 서버설정
=> localhost 8081로 변경
⑭ 스프링 프로젝트 생성
=> 서버에 추가
⑮ WEB-INF 폴더아래에 lib 폴더생성후, lib 폴더안에 jstl-1.2.jar 파일을 넣음.
▶ pom.xml
=> pom.xml 파일로 들어가서 11로 변경
=> 5.3.20 버전으로 업그레이드
=> 1.9.4 버전으로 업그레이드
=> properties는 변수를 지정하는 부분임. 앞에가 키값
2. pom.xml 구조 및 설정 / web.xml 설정
- groupId : 2번째레벨 까지의 패키지 구조
- artifactId : 3번째레벨의 패키지명(프로젝트명)
- packaging : 배포할때의 압축 형식
- properties : 이 문서에서 사용할 환경설정 내용들을 담은 변수(태그명이 변수명)
현재 문서 내부에서 ${변수명}으로 사용
- dependencies : 프로젝트에서 사용할 라이브러리들을 담는 곳
1) pom.xml파일에 repositories 태그 추가
- repositories : 여러개의 저장소를 등록해둘수 있음
2) DB 관련 라이브러리 추가
▶ ojdbc6 라이브러리
▶ mybatis 라이브러리
▶ 스프링에서 mybatis을 사용하기 위한 라이브러리
▶ 스프링에서 jdbc를 사용하기위한 라이브러리
▶ 커넥션풀 라이브러리
=> 복사하여 pom.xml에 붙여놓기
=> spring 껐다가 lombok 다음과같이 선택하여 설치한 후, 다시 spring 실행
정적인요소들은 resources 파일에 저장하여 사용함(이미지 파일 등)
3. web.xml 설정
DispathcerServlet : 요청/응답을 나눠주는 서블릿
[Front Controller] 모든 요청을 앞에서 받은 후 알맞은 Controller에게 연결을 해주고, Controller의 반환결과에 따라서 알맞은 화면을 선택해 클라이언트에게 응답해주는 역할을 한다. |
1) 필터
모든 요청 처리 전 공통적으로 필요로 하는 기능들을 클라이언트의 요청을 Controller가 받기전에 먼저 수행하게함
2) 스프링에서 제공해주는 인코딩 필터 등록
- class : org.springframework.web.filter.CharacterEncodingFilter
=> web.xml에 다음과 같이 추가
<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> <!-- new CharacterEncoding("UTF-8") 과 같음 --> <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> |
☞ web.xml → root-content.xml → sevlet-context.xml 순으로 실행됨
4. SQL Developer 에서 DB 생성
① 시스템관리자계정에서 SPRING 계정 생성과 권한 부여
② SPRING 계정 생성
③ 스프링 샘플 SQL 를 다운받아서 쿼리문 돌려줌
④ 다시 Spring으로 돌아와 main- resources 폴더아래에 mybatis-config.xml 생성
▶ mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" >
<configuration>
<settings>
<setting name="jdbcTypeForNull" value="NULL" />
<!-- 마이바티스 쿼리문, 파라미터값, 실행결과를 로그를 통해 확인하기 위한 셋팅
(운영환경에서는 반드시 제거해야함)
-->
<setting name="logImpl" value="LOG4J" />
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
<typeAliases>
<!-- Member → member -->
<package name="com.kh.spring" />
</typeAliases>
</configuration>
▶ main-resources 폴더아래 mapper 폴더 생성 후, member-mapper.xml 파일 생성
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="memberMapper">
</mapper>
▶ resources 우클릭 후, New - Untitled Text File 클릭하여 "datasource.properties" 파일 생성
=> 연결하고자하는 DB정보를 properties로 관리함
▶ datasource.properties 파일
datasource.driverClassName = oracle.jdbc.driver.OracleDriver datasource.url = jdbc:oracle:thin:@localhost:1521:xe datasource.username = SPRING datasource.password = SPRING |
5. root-context.xml 파일 설정
▶ root-context.xml 파일
: 서버구동과 동시에 web.xml파일을 거쳐서 로딩되는 문서
- 서버구동과 동시에 세팅해야하는 내용들을 작성한다.
=> context 클릭하여 추가. 그러면 context 태그를 사용할 수 있게된다!
=> 먼저 아래 구문을 추가하여 세팅하도록 한다.
<context:property-placeholder location="classpath:datasource.properties" /> |
5-1. DB연결설정
1단계) DB연결을 위한 도구 설정
<bean class="org.apache.commons.dbcp.BasicDataSource" id="realDataSource" destroy-method="close" > <property name="driverClassName" value="${datasource.driverClassName}"/> <!-- setter 함수 --> <!-- 키값은 datasource.driverClassName 이어서 value에 추가 --> <property name="url" value="${datasource.url}"/> <property name="username" value="${datasource.username}"/> <property name="password" value="${datasource.password}"/> </bean> |
2단계) Mybatis Spring에서 제공하는 sql명령어 실행을 위한 도구 등록
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory"> <!-- mybatis 설정파일 위치 지정 --> <property name="configLocation" value="classpath:mybatis-config.xml" /> <!-- DB연결을 위한 도구 등록 --> <property name="dataSource" ref="realDataSource" /> <!-- 매퍼등록 앞으로 생성할 모든 mapper파일을 한번에 읽어올 예정 --> <property name="mapperLocations" value="classpath*:mapper/**/*.xml" /> <!-- mapper들의 경로들을 여기에 넣으면 됨 --> </bean> |
3단계) SQL구문을 실행하기 위한 템플릿을 제공하는 도구(Bean) 등록
▶ SqlSessionTemplate : SqlSession을 구현할 구현클래스
<bean class="org.mybatis.spring.SqlSessionTemplate" id="sqlSession"> <constructor-arg ref="sqlSessionFactory" /> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="realDataSource" /> </bean> |
▶ sevelt-context.xml
☞ Handles HTTP GET requests for /resources/** by efficiently
serving up static resources in the ${webappRoot}/resources directory
/resources/** → /resources/a.jpg, /resources/img/b.jpg, /resources
- 정적인 파일들에 대한 요청을 mapping
☞ 주소 자동완성 도구
매번 같은주소를 추가해야하는 불편함때문에 주소자동완성기능이 기본적으로 등록되었다.
(/WEB-INF/views/)
- view resolver라는 도구를 등록(spring에서 제공)
- class : InternalResourceViewResolver
- prefix : 접두어 / suffix : 접미어
- 컨트롤러에서 문자열(String)값을 리턴할때 해당 문자열 앞에는 접두어, 뒤에는 접미어를 붙여서 포워딩시켜준다.
☞ base-package에 등록된 패키지와, 그 하위에 존재하는 모든 패키지를 scan해서 bean으로 등록가능한 클래스가 있다면
모두 등록시키겠다.
ex) HomeController homeController = new HomeController(); 이 코드를 spring에서 알아서 등록해준다.
▶ spring/pom.xml에서 다음과 같이 수정
기본셋팅 끝!!!!!
=> 정상적으로 구동되는지 확인! 이파일은 home.jsp에 있는 내용이 실행된 것이다.
'Server > Spring' 카테고리의 다른 글
[Spring] 4. 예외처리 (0) | 2024.01.23 |
---|---|
[Spring] 3. 마이페이지 수정하기, alertMsg 띄우기 (0) | 2024.01.23 |
[Spring] 2-2. 회원가입 페이지, 비밀번호 암호화 저장 (0) | 2024.01.22 |
[Spring] 2-1. 로그인, 로그아웃 페이지 (0) | 2024.01.22 |
[Spring] 1. header, footer만들기 (1) | 2024.01.22 |