HomeController.java. - 우리가 이전에 하던controller기능을 하는.servlet 역할을하는?
servlet-context.xml. - Servlet 환경설정하는 파일 HomeController에서의 값을 설정 적용 가능.
* Spring Framework
-기존방식-
- Dyamic web
: LOIGN ->> servlet >> auth >> Dao
->new Authentication(). servlet에서 auth를 연결하기 위해선 객체,생성함.
->new DataAccessObject(). auth를 dao에 연결하기 위해서 객체,생성함.
>> 위 처럼 객체를 계속 생성해준다면 서버 메모리에 부하가 오게 됨.
Spring 4가지 특징.
i) Light-Weight --> Single-Ton Design
ii) POJO(Plain Old Java Object) Based
iii)DI(Dependency Injection) -->@Autowired
iv)AOP(Aspect Oriented Programming) 횡단,관심지향 프로그래밍, 모든 프로그래밍에서 공통적으로쓰는 기능이 있다면 따로 빼둠. 설계가 머리 아픔,,, 구현은 쉽지않다.
자바 필드, 생성자, 힙데이터,가비지콜렉션,스택데이터 - 복습하기
그에 반해 Spring 에선 i) Light-Weight(Single-Ton Design). 특히 Light Weight를 강조.
ex) auth dao를 메모리? 서버?에 다올려두고 쓸떄만 참조해서 쓰는게 single-tone Design. static방식을 활용하는거임.
(하나를 올려두고 여러명이 쓸때마다 참조값을가져와서 씀. 즉, 자주 사용하는기능 것들을 모아두어야함. 클래스설계잘못하면 독!)
ii) POJO(Plain Old Java Object) Based
예전방식, 자바 문법을 사용해서 만듬. jdk최소한으로 건드림.
spring은 clinet요청이들어오는 servlet단에서 일을 처리함.
Spring에서는 job단위로 method를 사용.
(힙데이터는 우리가 못지움. garbagecollector가 지움. 특정한 시점에 모아서 지움. )
iii) DI (Dependancy Injection): 직역하면 의존성 주입-- > @Autowired
이미올라와있는녀석을 참조변수에 연결(주입이라고 칭함.) new를 여러번 안하니 경량화가 가능해진다.
package test.tdy.icia;
//Component가 붙어있으면 ClassB는 메모리에(Stack에) 올라가있음. 그래서 타 class에서 객체생성 필요? 노우!
@Component
public class ClassB {
}
/* Spring Framework에서 사용하는 annotation
@Component 아래의 annotation의 총칭.
@Controller >> Controller로 사용할 Class를 싱글톤(static)으로 자동 생성
@Service >> Service로 사용할 Class를 싱글톤(static)으로 자동 생성
@Reseource >> Databaser와 연동할 Class를싱글톤(static)으로 자동 생성
*/
/*Lombok Library에서 사용하는 annotation
@Data => @Setter+ @Getter (data는 셋터,겟터 만들어 줌,) lombok이 그 간단하게 만들어줌
@Setter >> setter Method 생성
@Getter >> getter Method 생성
*/
'BackEnd > Spring' 카테고리의 다른 글
[Java] Builder 패턴 (0) | 2024.12.30 |
---|---|
Spring MVC란? (0) | 2024.05.15 |
SPRING_LOGIN상태 확인 (1) | 2021.07.19 |
SPRING_주말정리 (1) | 2021.07.18 |
SPRING_Eclipse,설치 (0) | 2021.07.06 |