본문 바로가기
Spring

20210224

by Alohawaii 2021. 2. 26.

스프링의 주요 특징
 -POJO
 -DI
 -AOP
 -MVC
 -WAS에 종속적이지 않은 개발환경

1. POJO
 스프링은 다른 프레임워크들과 달리 객체 간의 관계를 구성할때 별도의 api를 사용하지 않는 pojo(plain old java object) 구성만으로 가능하도록 제작되었다.
=> 이말은 java 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할수 있다는 뜻.

 

2. DI(의존성 주입)
 어떤 객체간의 관계를 직접하지 않고 외부에서 의존성에 필요한 객체를 찾아서 주입시켜준다.
스프링에서는 이역할을 'ApplicationContext'라는 존재가 담당한다.
따라서 개발자들은 객체들을 분리해서 생성하고 이 객체들을 엮는 작업을 하는 형태의 개발을 한다.
ApplicationContext에서 관리하는 객체들을 Bean이라고 부르고 이러한 객체들의 의존관계를 처리하는 방식으로 1)Java 설정, 2)XML 설정, 3)어노테이션 설정 등이 있다.

 

3. AOP
 좋은 개발환경의 원칙은 '개발자가 비즈니스로직에만 집중할수있게 한다'이다.
이러한 목표를 이루기위한 몇가지 중요한 원칙중 하나는 '반복적인 코드'의 제거이다.
스프링에서는 대부분의 시스템이 가지고 있는 보안,로그, 트랜잭션등과 같은것을 횡단관심사라 한다. 이를 분리하여 제작하는것이 가능하다.
AOP는 이러한 횡단 관심사를 모듈로 분리하는 프로그래밍의 패러다임이다.

스프링은 AOP를 AspectJ의 문법을 통해서 작성할수있다.
 1) 핵심 비즈니스로직에만 집중해서 코드를 개발할수있게 된다.
 2) 각 프로젝트마다 다른 관심사를 적용할때 코드의 수정을 최소화할수있다.
 3) 원하는 관심사의 유지보수가 수월한 코드를 구성할수있다.

 

4. 트랜잭션의 지원
 데이터베이스를 다룰때 중요한것중 하나는 하나의 업무가 여러작업으로 이루어지는 경우의 트랜잭션이다.
스프링은 트랜잭션의 관리를 어노테이션이나 XML로 설정할수 있기 때문에 개발자가 매번 상황에 맞는 코드를 작성할 필요가 없도록 설계되었다.

==========

Chef Resturant 객체 생성
-@component
-@data
-@autowired

동작 순서
 1. 스프링 프레임워크가 시작되면 스프링이 사용하는 메모리 영역을 만들게 되는데 이를 컨텍스트라 한다. 스프링에서는 ApplicationContext라는 이름의 객체가 만들어진다.
 2. 스프링은 자신이 객체를 생성하고 관리해야하는 객체들에 대한 설정이 필요하다.
이에 대한 설정은 root-context.xml 파일이다.
 3. root-context.xml의 태그의 내용을 통해서 지정 패키지를 스캔한다.
 4. 해당패키지에서 @Component 어노테이션에을 보고 해당 클래스의 인스턴스를 생성한다.
 5. 클래스내에 @autowired 어노테이션을 보고 객체간의 관계를 wiring 된다.

 

[에러]
-onMethod 못찾을 경우 .m2 디렉터리 삭제
-SpringJUnit4ClassRunner.class 못찾을 경우 maven test추가
-test 안될경우 java build path에 junit library 추가

'Spring' 카테고리의 다른 글

20210226  (0) 2021.02.28
20210225  (0) 2021.02.26
IntelliJ Mybatis 연동해보기  (0) 2021.01.03
스프링 오라클 데이터베이스 연동  (0) 2020.11.29
인텔리제이 프로젝트 깃허브 연동하기  (0) 2020.11.22