고래씌

[Spring] 0. Spring 환경설정 본문

Server/Spring

[Spring] 0. Spring 환경설정

고래씌 2024. 1. 19. 14:48

1. 아파치 메이븐 다운로드

 

https://maven.apache.org/

 

Maven – Welcome to Apache Maven

Welcome to Apache Maven Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. If you

maven.apache.org

 

 

① 클릭하여 다운로드 받기! 

 

② 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버전에서 맨 첫번째꺼 클릭하여 설치

 

Spring Tool Suite 3

the distribution build for the Spring Tool Suite and the Groovy/Grails Tool Suite - spring-attic/toolsuite-distribution

github.com

 

 

⑤ 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에 있는 내용이 실행된 것이다.