Maven Project
Spring은 자바 객체를 bean이라는 이름으로 관리함
테스트용 Maven project 생성
> Create a simple project > Next > Group id: com.kh / Artifact id: spring / Name:01_springbean >Finish
MVNReository
> spring-context > 호환성 높은걸 찾아 쓰자 5.1.5 선택 > pom.xml
<dependencies></dependencies> 이 태그 넣고 사이에
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
Spring Framework Runtime
Core Container : Beans, Core, Context(일반 자바 객체를 빈으로 관리, 스프링 컨테이너가 관리하는 자바 객체), SpEL - 기본이 되는 스프링 모듈
src/main/Java > 새 Class생성 > package: com.kh.spring.tv.model.vo / Name: LgTV > Finish
> implements TV > create interface "TV" > 추상메서드 만들기 void powerOn() > 추상메서드 구현하기
스프링에서는 빈을 관리하는 하나이상의 컨텍스트가 존재함
xxx-context : application-context
src/main>resources > Spring Bean Configuration File(xml파일-스프링 관련 설정 파일) > File name: application-context.xml> Finish (beans 최상위 태그를 가진 xml파일 생성)
<bean class="com.kh.spring.tv.model.vo.LgTV" scope="prototype" /> 어떤 클래스를 bean으로 관리해줄지 설정
어플리케이션 컨텍스트 객체를 만들기 위해 제공되는 파일이니까 여기 적힌 bean 태그들의 명세를 보고 실제 스프링 컨테이너가 자바 객체 bean으로써 관리함
bean의 scope라는 속성은 기본값이 singletone -> 프로그램이 돌아가는 내내 딱 하나의 객체만 만들어 관리(보통은 singletone으로 많이 함)
scope="prototype" -> 요청할때마다 새로 만들어 관리. 또한 초기화할때 미리 만들지 않고 실제 호출이 일어날때마다 생성됨
lazy-init="true" -> 호출이 있기 전까지 객체를 만들지 않음
Spring Project
New > Spring Lefacy Project > Next > name: hellospring / Templates: Spring MVC Project > Next
> 패키지는 3레벨 이상 작성(따로 contextPath적는것 없이 3레벨에 쓴걸 contextPath로 봄) com.kh.spring >Finish
> pom.xml <properties>는 일종의 변수 선언으로 봐라(키 벨류 형식으로 쓰임) -> 이렇게 쓰면 여러 의존 라이브러리의 버전을 하나로 통일할 수 있음
src/main/resources는 설정파일을 작성해서 Build Path(target/classes)로 배포해줌
src/main/webapp > resources는 css/images/js등을 처리할 경로임
context는 bean을 관리하는 단위
Server Runtime 추가
Preferences > Server > Runtime Environments > Add... > Tomcat 8.5 > Brows > dev > apache-tomcat-8.5.56 > Finish > Apply
New Server > Server name: hellospringServer > Next > 프로젝트 연결 > Finish
home.jsp서버한테 utf-8으로 된 html임을 알려주는 지시어 설정 - 맨윗줄에 <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
> 서버 키고 방화벽 허용 > localhost들어가보고 jstl 오류 나는지 확인해보기(오류나면 jar파일 자체에 오류있어서 그럼)
jar을 따로 추가하지 않아서pom.xml의 dependency의 jstl을 찾아다 쓰는데 그 파일이 좀 문제가 있음
pom.xml에 문제가 있는 의존 라이브러리는 기존 방식대로 WEB-INF/lib생성해서 jar파일 끌어다 놓고 사용하면 됨
프로젝트 루트에서 alt + enter > Java Build Path > Add > Web App Libraries > apply
컴파일 경로 잡아주기 & 서버 설정
WEB-INF/jspwork 생성 > Server > context.xml > <Context workDir="C:\workspace\spring_workspace\hellospring\src\main\webapp\WEB-INF\jspwork"> 추가
Server 영문설정 -Duser.language=en -Duser.region=US & Server modules without publishing 체크 하기
자바 & 서블릿 판올림
프로젝트 Properties > Java Build Path > Libraries > Edit > Workspace default JRE 체크 > Finish > Apply
Properties > Project Facets 에서 실제 프로젝트의 모듈 확인 및 수정 가능 (Web Module과 Java 버젼은 직접 수정해야함)
pom.xml > 위쪽에 java-version 확인 후 복사해서 > 아래쪽 <plugin> 밑에 maven-compiler-plugin의 <source>${java-version}</source> 적어주기(자바 버전 1.8버전으로 올림)
웹모듈 버전(Servlet Spec) 2.5 -> 3.1
pom.xml <!-- Servlet --> 찾고 dependency 아래 <artifactId>javax.servlet-api</artifactId>바꾸고, version을 3.1.0으로 수정 <version>3.1.0</version>
> web.xml java.sun.com/xml/ns/javaee/web-app_3_1.xsdweb-app태그 안의 version="3.1"로 수정 & schemaLocation맨 뒤에 https://java.sun.com/xml/ns/javaee/web-app_3_1.xsd 이렇게 버전 수정
alt + f5눌러서 메이븐 업데이트 해보고 문제없이 켜지면 된것!! => Properties > Project Facets 버전 확인해보기
메이븐 지역저장소는 .m2(분산 관리) -> dev폴더 밑으로 가져와서 관리
dev 폴더에 maven만들기 > repository폴더 생성 후 폴더 들어가서 주소창 경로 복사
> apache-maven-3.6.3 > conf > settings.xml 카피 > dev/maven에 settings.xml 붙여넣기
> settings.xml수정 > localRepository찾아서 주석 처리된 <localRepository> 주석 밑으로 빼내고
> <localRepository> dev/maven/repository경로 복사하기</localRepository> => <localRepository> C:\dev\maven\repository </localRepository>
>window > Maven > User Setting > User Settings: Browse... > dev/maven에서 settings.xml 선택 후 열기 >Local Repository 갱신확인
스프링 프레임 워크 버전 업
pom.xml > properties의 <org.springframework-version>5.1.5.RELEASE</org.springframework-version> 이렇게 업데이트
'프로그래밍 > Spring' 카테고리의 다른 글
10.12(스프링 특징 : IoC, DI, POJO, PSA, AOP) (0) | 2020.10.12 |
---|---|
10.08(스프링 인코딩 필터 설정 & 파라미터) (0) | 2020.10.08 |
10.07(servlet-context설정) (0) | 2020.10.07 |
10.06(spring version-up & application-context 설정) (0) | 2020.10.06 |
09.29(sts 설치) (0) | 2020.09.29 |