[스터디] 스프링 프레임워크
STS :: Spring Tools Suit
자바 개발자에게 Eclips가 나오는 순간에 발전이 많이 됨 IT 업무가 커짐 – 플랫폼 통일이 필요함. 정보화진흥원이 생기면서 우리나라 it에 관여함. 정부 프로젝트 5억이상은 감리를 받도록 함. –> 전자정부 프레임워크 공통화 시킴
처음에 너무 무거워서 돌리지 못함. 스프링 기반으로 자바, html, 안드로이드 등등을 넣은 것
스프링에서 STS를 만들어 넣었음. –> 정부에서도 STS도 전자정부 프레임워크로 인정하겠다 함.
Legacy :: 스프링 프레임워크 – 레가시 프로젝트 지금은 –> 스프링 부트로 넘어감
Legacy– 소스로 실행됨 부트 – JAR로 실행됨
==> 속도 차이가 엄청남 현재는 부트 추세로 바뀌고 있음. 전체가 다 바뀌려면 5년 정도 걸릴듯
레가시로 일단 공부
STS에서 레가시 설치 STS-> help > Eclips marketplace > ‘STS’입력 > Spring Tools 3 add-on 인스톨
new project > other > Spring > 레거시 com.naver.iamhch 로 입력
메이븐 메이블 같은 빌드 툴에서는 프로젝트 생성 시 자동으로 log4j 라이브러리가 설치됨. log4j 기능 관련 성정은 log4j.xml 파일에서 수행함
서버
서버 :: 공급 하는 자 클라이언트 :: 공급 받는 자
정보를 공유하려면 반드시 서버가 있어야 함.
전체 :: 애플리케이션 서버 ex) 리눅스, 윈도우서버, NT, IBM, … 기본적으로 :: 웹 서버가 깔림 – WAS 서버 그 다음에 :: DB Server 깔림
여기에 고정 IP를 가지고 있어야 함. 집에서는 유동 IP를 사용함.
임베디드 프로그램 = 펌웨어 아두이노 = 하드웨어 PM = 프로젝트 매니저
프로그램이 통채로 올라간다. WAS 서버가 자체에서 돌아감
STS 4.0 이상으로 오면서 Spring Boot 로 바뀌었음.
개발자들은 못한다고 하면 안됨. 배워서 어떤 기술이든 받아들여서 만들어야 한다.
Run as –> Run on Server 가 안떠서 STS 3.7에서 실행함 Hello World 출력됨
src > main> webapp> WEB-INF >views >homejsp
static 은 프로그램이 끝나는 순간까지 메모리에 상주 한다. - 전체 프로젝트에서 접근할 수 있다. 우리는 메소드를 쓴다. 메소드를 넣기 위해 클래스에 담는다. 패키지 안에 클래스를 넣어둔다.
static을 많이 만들면 메모리 상주하니 안좋다.
Controller :: MVC에서 C에 속함
- @Controller가 붙으면 Controller이다. :: 스프링에서 이것을 찾아감
- 여러개 만들 수 있다.
브라우져 이벤트 처리 모두 컨트롤러가 될 수 있다. 컨트롤러를 여러개 만듦. @Controller 써주면 스프링이 알아서 찾음
src/main/java > com.naver.iamhch > HomeController.java – @Controller / return “home” (home.jsp 호출함) src> main> webapp> WEB-INF > views > home.jsp
logger.info –> 서버 콘솔에 남음 locale :: 언어설정 model :: 객체, 받기도 하고 보내기도 하니, 버스 역할 (참고 :: https://blog.naver.com/rnalsttnn2/222165872126) .addAttribute ( ) :: 속성 설정
컨트롤러는 내가 만든 패키지 바로 아래 있어야 인식가능함. jsp도 있어야 하는 자리가 정해져 있음
servlet-context.xml 에서 폴더 설정 (JSP, 패키지)
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" /> // jsp는 생략해도 자동적으로 .jsp 붙음
</beans:bean>
<context:component-scan base-package="com.naver.iamhch" />
webapp :: WAS 부분 WEB-INF > views :: JSP 부분
404 에러 :: Page Not Found
view 폴더를 루트로 시작함. JSP는 view 아래에 만든다.
한글 인코딩
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
**[출처]** [STS 한글설정](https://blog.naver.com/dgkim1007/220993217075)|**작성자** [자바대장](https://blog.naver.com/dgkim1007)
porm.xml
<properties>
<java-version>1.8</java-version>
<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
**[출처]** [STS 한글설정](https://blog.naver.com/dgkim1007/220993217075)|**작성자** [자바대장](https://blog.naver.com/dgkim1007)
Home 화면
# Hello world!
The time on the server is 2021년 1월 18일 (월) 오후 4시 00분 03초.
ctrl + alt + 화살표 :: 한줄 복사 ctrl + d :: 한줄 삭제 shift + enter :: 바로 밑줄에서 코딩