다운로드.jpeg Spring이란 소규모 어플리케이션 또는 기업용 어플리케이션을 자바로 개발하는데 있어 유용하고 편리한 기능을 제공하는 프레임워크 DI, AOP, MVC, JDBC (프로그래밍에 있어 어떤 구조를 만들어가는 방법론) 등을 지원 오픈소스 경량급 애플리케이션 프레임워크 주요 특징 크기와 부하의 측면에서 경량 경량 컨테이너로서 ...
IOC Inversion Of Control: 제어권이 역전되었다. (의존 관계 주입) 어떤 객체가 사용할 객체(의존관계인 객체)를 직접 선언하여 사용하는 것이 아니라, 어떤 방법을 사용하여(ex. 생성자)사용하여 주입 받아 사용하는 것 스프링 IOC 컨테이너 IOC기능을 제공하는 컨테이너. Bean들을 담고있음 Bean 정의를 읽어들이고, Bean을 구...
xml파일로 Bean 등록해보기 먼저 src - main - java 하위에 Car이라는 패키지를 만들어주고, Car안에 main과 CarRepository와 CarService를 생성해준다. 스크린샷 2020-01-06 오전 12.54.09.png CarService는 setter를 통해 CarRepository를 주입받아 사용한다고 ...
@Autowired란 생성자나 세터 등을 사용하여 의존성 주입을 하려고 할 때, 해당 빈을 찾아서 주입해주는 annotation이다. option required 값을 ture나 false로 줄 수 있다. true인 경우는 의존성주입에 필요한 객체가 무조건 bean으로 등록되어있어야한다. @Autowired or @Autowired(required = t...
Bean의 scope IOC를 처음 다뤘을 때,(https://velog.io/@max9106/Spring-IOC%EB%AF%B8%EC%99%84), Bean의 scope에 대해 잠깐 다뤘던적이 있다. 이때까지 우리가 사용해 왔던 Bean들은 모두 싱글톤타입의 bean들이었다.(Default 값이 싱글톤이기 때문) 싱글톤이란 어플리케이션 전반에 해당 B...
ApplicationContext는 BeanFactory 기능 말고도 여러가지 기능을 가지고 있다. Environment기능 ApplicationContext는 'EnvironmentCapable'를 상속받고 있다. 스크린샷 2020-01-21 오후 6.54.17.png EnvironmentCapable은 2가지 기능이 있다. 프로파일...
Application의 기능 중에는 MessageSource도 있다. 스크린샷 2020-01-22 오후 4.13.23.png MessageSource 메세지를 다국화 할 수 있는 인터페이스이다. 예제 먼저 resources 밑에 원하는 언어의 messages.properties 파일을 만들어준다.(ex. 한글: messageskoKR.pr...
Application의 기능 중에는 ApplicationEventPublisher도 있다. 스크린샷 2020-01-26 오전 3.25.54.png ApplicationEventPublisher ApplicationEventPublisher는 이벤트 기반의 프로그래밍을 할 때 유용한 인터페이스이다. 이벤트 기반 프로그래밍이란, Event...
리소스를 로딩해주는 인터페이스를 ApplicationContext가 상속받아서 구현하는 것이다. ResourceLoader 객체를 생성하여, 스크린샷 2020-01-26 오전 4.18.38.png getResource 메서드를 사용하여 경로를 입력해줘서 사용한다. 스크린샷 2020-01-26 오전 4.19.16.png...
Resource 추상화 java.net.URL 이라는 클래스를 org.springframework.core.io.Resource라는 클래스로 감싸서 실제 low 레벨에 있는 Resource에 접근하는 기능을 만든 것 Resource 자체를 추상화 시킨 것이다.(가져오는 방법은 ResourceLoader를 사용한다 https://velog.io/@max91...
데이터 바인딩이란? 어떤 property의 값을 타겟 객체에 설정하는 기능. 즉, 사용자가 입력한 값을 어플리케이션 도메인 객체에 동적으로 할당하는 기능이다. 사용자는 주로 문자열을 입력하는데, int형으로 받아야 할 수도 있고, Date나 객체 그 자체로 받아야하는 경우도 있는데, 그 문자열을 객체가 가지고 있는 다양한 property 타입으로 변환해...
Converter와 Formatter는 DataBinder가 아닌, ConversionService에 등록이된다. Converter PropertyEditor의 여러 단점(stateful, String Object 관계의 변환만 가능 etc)들 보완하기 위해 나온 것이 Converter이다. string object 이외에도 타입 변환 가능 Stat...
SpEL이란? Spring Expression Language의 약자이다. 객체그래프를 조작하고 조회하는 기능을 한다. 사용방법 표현식: #{"표현식"} 스크린샷 2020-01-30 오전 1.14.13.png 프로퍼티: ${"프로퍼티"} 스크린샷 2020-01-30 오전 1.10.56.png 참고: https:/...
AOP란? Aspect-Oriented Programming의 약자이다. 흩어진 Aspect들을 모아서 모듈화 하는 기법이다. 서로 다른 클래스라고 하더라도 비슷한 기능을 하는 부분(ex 비슷한 메서드, 비슷한 코드)이있다. 이 부분을 Concern이라고 한다.(아래 색칠 되어 있는 부분) 스크린샷 2020-01-30 오전 1.51.4...
스프링 AOP는 프록시 기반의 AOP 구현체이며, 스프링 Bean에만 AOP 적용 가능하다. 프록시 패턴이란? 프록시 객체는 원래 객체를 감싸고 있는 객체이다. 원래 객체와 타입은 동일하다. 프록시 객체가 원래 객체를 감싸서 client의 요청을 처리하게 하는 패턴이다. 프록시 패턴을 쓰는 이유는 접근을 제어하고 싶거나, 부가 기능을 추가하고 싶을 때 ...
spring 5버전에 추가된 어노테이션 Tool(IntelliJ)의 지원을 받아 컴파일 타임에 최대한 Null point exception을 방지하기 위한 것이다. Null을 허용하는지 허용하지 않는지 어노테이션으로 나타낸다. 스크린샷 2020-01-31 오전 12.08.05.png tip) intelliJ에서 runtime asse...