[스터디] 스프링 프레임워크

2 분 소요

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 :: 바로 밑줄에서 코딩