본문 바로가기
CLASS/SPRING,JSTL

#5-3 / spring - legacy setting

by hingu 2024. 7. 12.
  1. legacy project 생성
  2. encoding 변경 등 window - preferences setting
  3. D:\legacy\.metadata\.plugins\org.springsource.ide.eclipse.commons.content.core
    에 html 넣고
    D:\legacy\.metadata\.plugins\ 에 폴더 넣기 (하단에 zip파일 첨부해놓음 - 실제 사이트에서 다운받아도 됩니다)
  4. javaIDE/STS.ini 의 javaw.exe를 D:\Java\jdk-11\bin => 요 경로로 변경 및 version 변경
    - spring lecacy 는 java17번 이하에서만 가능하기때문! 
  5. 우클릭 - spring legacy project - spring MVC project
    => next => kr.co.abc (가상의 도메인 거꾸로 씀 - 3가지 파트가 들어가야함) - finish
  6. 서버 신규로 apache 8.5 , jre - java 11 - add
  7. 프로젝트 우클릭
    properties - build path :  [ java ,server ] add library
    java compiler - java 11
    project jacets - dynamic 3.0 java 11 javascript ck
    web project Settins - /
  8. pom.xml  java version 11번으로 변경 후 저장 - 상단 java-version , org.apache.maven.plugins
  9. pom.xml에 없는 것 중 maver repository 에서 필요한 라이브러리 다운 후 복붙
    (얘네는 직접 추가해야하는 라이브러리들)
    - spring-jdbc 5.3.37 - 얘 에러남  aspect J 위에 넣기
    - commons-fileupload 1.5
    - mysql-connector-java 8.0.33
    - project lombok 1.18.34
    - Commons DBCP 1.4
    - Tomcat Servlet API - 8.5.61 (사용 apache 버전과 같은거)
    => maven update project 해줘야함
  10. web.xml
    상단 xsi:schemaLocation  web-app_3_0.xsd , 하단 web-app version="3.0"로 변경
  11. web.xml 의 <web-app> 안에 한글깨짐 방지 코드 작성
    <!-- 한글깨짐 방지 -->
    <filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <int-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    </int-param>
    <int-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
    </int-param>
    </filter>
    <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>



    <filter>
    <filter-name>setCharacterEncodingFilter</filter-name>
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>setCharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    깨짐현상 이거넣으니까 해결됨 뭐지..

  12. spring/appServlet/servlet-context.xml 
    resource mapping="/**" location="/" ,prefix value="/"경로 변경 
    ※  js,css등 리소스 경로 지정(보안을 위해서 이렇게 하는게 좋음) :  https://dev-eunse.tistory.com/204
  13. HomeController.java(controller) 얘는 지워두댐니다
  14. 접근 경로에 프로젝트명 빼고싶으면 
    프로젝트 우클릭 - properties - web project setting / 로 변경 후 
    => webapp에 index 파일 만들어서 저장 (index.jsp 아님 속성명 붙이지 않음!!)
    => 서버 add and remove로 뺏다가 다시 넣고 서버 재가동

 

[legacy db연결]

  1. web.xml의 <param-name>contextConfigLocation</param-name> 
    <param-value> 에  /WEB-INF/spring/appServlet/dbconfig.xml (내가만든 파일명임 xml) 이거 추가 : 파일등록
  2. WEB-INF의 appServlet  폴더에 spring bean cofiguration file 새로 만듬 (이거 파일명이 dbconfig.xml)
    체크박스 : beans,context,cache,jdbc,mvc,mybatis,util 등 필요한거 최신버전으로 체크 후 finish
  3. dbconfig.xml에
    <context:annotation-config /> <!-- 해당부분이 없으면 template 사용하지 못함 -->
    <context:property-placeholder location="/WEB-INF/classes/dbconfig.properties"></context:property-placeholder>
    <bean id="dbInfo" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driver}"></property>
    <property name="url" value="${jdbc.url}"></property>
    <property name="username" value="${jdbc.user}"></property>
    <property name="password" value="${jdbc.pass}"></property>
    </bean>
    작성
    => mybatis 사용시 추가코드 있음 https://dev-eunse.tistory.com/232
  4. WEB-INF/spring/calsses 폴더에 new file -> dbconfig.properties 파일 생성
  5. dbconfig.properties  에
    jdbc.driver = com.mysql.cj.jdbc.Driver
    jdbc.url = jdbc:mysql://localhost:3306/cms
    jdbc.user = hana
    jdbc.pass = hana1234 
    작성 (뒤에 공백 절대 안됨!! ; 도 안됨)

🔽 DB연결 확인 (Controller에서 확인하면 됨)

@Autowired
BasicDataSource dbInfo;

@RequestMapping("/test.do")
public void test() throws Exception{
    try {
        Connection con = dbInfo.getConnection();
        System.out.println(con);
    }catch(Exception e) {
        System.out.println("데이터베이스 연결 오류");
    }
}

=> 성공시 jdbc:mysql://localhost:3306/cms, UserName=hana@localhost, MySQL Connector/J 요게 sysout으로 잘 찍힘

 


 

❗   ❗ 주의

legacy는 @Postmapping , @Getmapping 이 없다!!! (오직 @Request~ 만 존재)

또한 springframework의 버전이 너무 낮아도 사용 불가!! (5.0대 이상 사용해야함)

 

pom.xml 의

<org.springframework-version>3.1.1.RELEASE</org.springframework-version> 이 부분

<org.springframework-version>5.0.1.RELEASE</org.springframework-version>  이거로 변경

( maven repository 의 Spring Context 검색 후 있는 버전 확인 ) => @postmapping,getmapping 사용 가능


3. Spring mvc.zip 파일 => 해당 파일을 압축 풀어서 넣으면 됩니당

mvc.zip
0.02MB

 

4. 이렇게 떠야 정상