■ 자바 스프링 시작!!
이제부터 이클립스를 사용하지 않고, String boot 전자정부프레임워크 사용할 것이다.
최신 이클립스를 쓰면 좋지만 예전 기능들을 쓰지 못한다.
예전 환경에서도 사용가능하게끔 학습하도록...
★ 환경변수 -> 자바 홈 1.8로 맞춰야함
(전자정부프레임워크 홈페이지) 현재 개발환경은 4.2까지 나와있다.
처음 사용하기엔 예전기능들이 빠져있기 때문에 좋지 않다.
3.9 버전으로 학습한다.
개발방식이 달라진 것이 아니라 이클립스 버전이 다르다.
★ 개발자용 개발환경 32&64bit(Implementation Tool) Version 3.9.0 (20년도) 다운로드 (JDK는 1.8 버전 사용이 필수)
(다운로드 링크 : https://www.egovframe.go.kr/home/sub.do?menuNo=41)
압축풀고, programfiles의 eclipse에 넣어준다. (교체!)
workspace는 따로 사용 X --> 기존의 KosaCourse를 사용
이제 이 안의 eclipse를 사용할 것.
기존 KosaCourse에 있던 .metadata는 서로 버전이 안맞음 (17환경 -> 1.8환경)
.metada 폴더를 지우고, 새로운 전자정부 eclipse를 연결하면 그에 맞는 .metadata가 다시 생성될 것임.
이클립스 종료하고
★ 롬복 다운로드 → cmd 관리자권한으로. (C드라이브 밑에 바로 설치하려면 관리자 권한이 필요)
롬복이 있는 파일로 cd한다.
java -jar lombok.jar 명령어를 입력해주고 전자정부프레임워크 이클립스를 체크하고 설치한다.
★ 구글에 tomcat 검색 -> 아파치 톰캣의 톰캣 9 64-bit Windows zip 다운
압축풀고 C의 Program Files에 이동
다시 이클립스 실행
servers클릭 → WAS(Tomcat) 등록
→ 9.0버전 서버를 선택하고 아까 받았던 Tomcat폴더를 디렉토리로 등록
★ new -> egovFrame Web Project 생성 (springframework)
targetRuntime → 아파치 톰캣 9.0
Dynamic Web Module version → 4.0
Maven Setting - Group Id : com.mycompany
→ next 누른다음 finish
★ 전자정부프레임워크 : 이클립스 뿐만 아니라 외부 라이브러리를 묶어놓은 것.
springframework 폴더에 X표가 뜬다. 우클릭 Maven -> update project 하기
다시 springframework 폴더에 X표가 뜬다. 우클릭 java EE tools -> Generate Deployment Descriptor Stub
ppt 6페이지 pom.xml 수정
springframework > Maven > Disable Maven Nature
pom.xml 삭제 > eclipse 재시작
springframework > Configure > Convert to Maven Project
그룹 아이디 : com.mycompany -> finish
pom.xml이 다시 생김. 내용도 바뀐다.
ppt 7페이지
pom.xml 내용 추가
<packaging>war</packaging> 밑에 작성
<dependencies>
<!-- 서블릿 4.0 라이브러리를 사용 -->
( 복사해서 가져온다 )
</dependencies>
① 구글에서 Maven 검색 → Maven 레파지토리 사이트 들어가서 servlet 검색 후 Java Servlet API를 들어간다. 그 후 4.0.1버전에 들어가 Maven 복사 (서블릿 4.0 라이브러리를 사용)
② JSP를 다시 검색. JavaServer Pages(TM) API에 들어가 2.3.3으로 또 들어가고, Maven 복사.(JSP 2.3.3 라이브러리를 사용)
③ JSTL 검색 JSTL(javax.servlet » jstl) 이곳으로 들어간다. 1.2버전으로 들어가 Maven 복사.(JSTL 1.2 라이브러리를 사용)
→ 초기화된 pom.xml을 라이브러리들을 업데이트 하는 것.. 주석을 달고 붙여넣자. 할 줄 알아야 한다.
④ log4j 검색. 4번째목록 Relocated → org.apache.logging.log4j » log4j-slf4j2-impl로 들어간다. beta는 제외하고 2.23.1버전 사용 Maven 복사. scope부분 test문장은 지운다. (로깅 라이브러리 사용)
⑤ lombok검색. Project Lombok클릭 1.18.32버전 사용 Maven복사. scope부분 삭제 (Lombok 라이브러리 사용)
⑥ org.springframework » spring-context 클릭 자바 1.8은 5.대 버전까지밖에 사용 못함. 5.3.33버전 Maven 복사
org.springframework » spring-webmvc 클릭. 5.3.33버전 Maven 복사
(SpringFramework 라이브러리 사용)
여기까지 최소한의 라이브러리 설정 끝
src/main/resources --> new --> file --> log4j2.xml파일 생성
Source부분으로 들어가서
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Out" target="SYSTEM_OUT">
<PatternLayout charset="UTF-8" pattern="%-5level: %logger{1}.%M() - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="com.mycompany.springframework" level="info" additivity="false">
<AppenderRef ref="Out"/>
</Logger>
<Root level="error">
<AppenderRef ref="Out"/>
</Root>
</Loggers>
</Configuration>
붙여놓고 저장.
src - main - webapp - WEB-INF - web.xml 파일 열기
</welcome-file-list> 밑에
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/root/*.xml</param-value>
</context-param>
붙여놓고 저장
src/main/resources 밑에 폴더 spring/root 만들기
root폴더 아래에 Spring Bean Definition file 만들기
파일 이름 ch01_component_scan.xml
next 누른 다음 beans 체크, 상세 옵션에 버전없는 것 spring-beans.xsd 체크
web.xml 파일에 다시
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/dispatcher/*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
코드 추가.
spring 폴더 아래에 dispatcher 폴더생성 후 Spring Bean Definition file 만들기
파일 이름 ch01_component_scan.xml
다시 web.xml 파일에 소스 추가
<filter>
<filter-name>CharacterEncodingFilter</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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
root 밑 ch01_component_scan파일에 소스 추가
<context:component-scan base-package="com.mycompany.line8_mini_web" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
// Namespaces 설정 --> context, 버전없는것 선택
다시 dispatcher 밑 ch01_component_scan 파일에 소스 추가
<context:component-scan base-package="com.mycompany.line8_mini_web">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
<mvc:annotation-driven/>
Namespaces 설정 --> context, 버전없는것 선택
<mvc:annotation-driven/> --> MVC, 버전없는것 선택
dispatcher에 Spring Bean Definition file 만들기
파일 이름 ch01_static_resource.xml
<mvc:resources mapping="/resources/**" location="/resources/" /> 소스 추가
밑의 str - main - webapp 아래에 새폴더 resources 만들기
다시 dispatcher 밑에 Create a new Spring Bean Definition file 만들기
파일 이름 ch01_veiw_resolver.xml
추가 코드
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
str - main - webapp - web-INF 아래에 views폴더 생성
# src/main/java 폴더에 패키지 생성
패키지 이름 : com.mycompany.springframework
패키지 이름 : com.mycompany.springframework.controller
클래스 파일 만들기 : HomeController.java 생성
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Controller
public class HomeController {
@RequestMapping("/")
public String index() {
log.info("실행");
return "home";
}
}
위의 소스 넣어주기.
패키지 이름 : com.mycompany.springframework.dao
패키지 이름 : com.mycompany.springframework.service
다시 아래의 src - main - webapp - WEB-INF - views폴더에 home.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>머리가 어질어질합니다..</h3>
<hr/>
</body>
</html>
위의 코드를 home.jsp에 넣어준다.
★ pom.xml 을 변경하면 프로젝트의 Maven → update project를 해주어야 반영된다. (에러났을 때 바로 시도)
★ pom.xml의 artifactId는 도메인의 네임을 바꿔준다.
# 주의
pom.xml → test(scope부분) 빼주어야될 것 빼주기.
C드라이브 밑에 사용자 및에 .m2 → Maven된 것들이 저장되어 있음..
pom에 추가한 라이브러리들이 저곳에 들어있게 된다. 레포지토리가 깨졌을 경우 전체 삭제 후 다시 이클립스에서 pom.xml파일을 저장하면 다시 다운로드 된다.
src/main/java의 패키지 네임과 artifactId 일치시키기.
반복 숙달하자~!!!!!!! ㅠㅠ
'JAVA' 카테고리의 다른 글
22일차 2024 - 3 - 27 (0) | 2024.03.27 |
---|---|
21일차 2024 - 03 - 26 (0) | 2024.03.26 |
19일차 2024 - 3 - 22 (1) | 2024.03.24 |
18일차 2024 - 3 - 21 (0) | 2024.03.21 |
17일차 2024 - 3 - 20 (0) | 2024.03.20 |