BE/Spring 7

Spring AOP

AOP 핵심: 관심 분리(Separation of Concerns) - 횡단 관심: AOP에서 메소드마다 공통적으로 등장하는 로깅이나 예외, 트랜잭션 처리 같은 코드들 - 핵심 관심: 사용자의 요청에 따라 실제로 수행되는 핵심 비즈니스 로직 /* pom.xml에 AOP 관련 라이브러리 추가하기*/ org.aspectj aspectjrt ${org.aspectj-version} org.aspectj aspectjweaver 1.8.8 AOP의 주된목적 - 스프링 AOP는 클라이언트가 핵심관심에 해당하는 비즈니스 메소드를 호출할 때, 횡단 관심에 해당하는 메소드를 적절하게 실행해주는데 핵심 관심 메소드와 횡단 관심 메소드 사이에서 소스상의 결합은 발생하지 않는것이 주된목적이다. 1. 조인..

BE/Spring 2021.07.06

Spring annotation

1. context namespace 추가 2. conponent-scan 설정: 스프링 설정파일에 애플리케이션에서 사용할 객체들을 에 등록하지 않고 자동생성하려면 이라는 엘리먼트를 정의해야함. 이 설정을 추가하면 스프링 컨테이너는 클래스 패스에 있는 클래스들을 스캔하여 @Component가 설정된 클래스들을 자동으로 객체 생성해줌. 3. 의존성 주입 어노테이션 어노테이션 설명 @Autowired(스프링에서 제공) 주로 변수 위에 설정하여 해당 탕비의 객체를 찾아서 자동으로 할당 @Qualifier(스프링에서 제공) 특정 객체의 이름을 이용하여 의존성 주입할 때 사용 @Inject @Autowired와 동일한 기능을 제공 @Resource @Autowired와 @Qualifier의 기능을 결합한 어노테이..

BE/Spring 2021.07.02

Spring xml

* 엘리먼트 - 스프링 기반의 어플리케이션의 다양한 기능을 기능별 여러 XML 파일로 나누어 설정하는 것이 더 효율적인데, 분리하여 작성한 파일을 하나로 통합할때 사용하는 것. //context-datasource.xml datasource 관련설정 //context-transaction.xml transaction 관련설정 //applicationContext.xml * 엘리먼트 - 스프링 설정 파일에 클래스를 등록하려면 엘리먼트를 사용해야함. - 이때 id 와 class 속성을 사용하는데 id는 생략가능, class는 필수이다. - id 식별자 작성 규칙 ID 문제발생이유 id="7user" 숫자로 시작 id="user service" 공백 포함 id="user#service" 특수기호 사용

BE/Spring 2021.07.02

Spring container

//1. spring 컨테이너 구동 AbstractApplicationContext factory = new GenericXmlApplicationContext("applicationContext.xml"); => 1. 클래스 경로의 applicationContext.xml 파일을 로딩한다는 메시지가 먼저 출력. 2. GenericXmlApplicationContext 객체가 생성되어 스프링 컨테이너가 구동됐다는 메시지 출력 # 스프링 컨테이너 종류 1. BeanFactory - 스프링 설정 파일에 등록된 객체를 생성하고 관리하는 가장 기본적인 컨테이너 기능만 제공 - 컨테이너 구동시 객체를 생성하는 것이 아니라, 클라이언트 요청에 의해서만 객체가 생성되는 지연 로딩방식 사용. 2. Application..

BE/Spring 2021.07.02

spring basic #1

1. framework - 뼈대, 틀로서 소프트웨어 관점에서 보면 아키텍처에 해당. - 장점: 어플리케이션에 대한 분석, 설계, 구현 모두에서 재사용성의 증가(빠른 구현시간, 쉬운 관리, 개발자 역량강화 등..) 2. 스프링 프레임워크 탄생배경 - spring이 등장하기 전에는 자바 기반의 엔터프라이즈 애플리케이션은 대부분 EJB로 개발되었으나 EJB는 스펙이 너무 복잡해서 학습이 많은 시간소모가 필요하였고 유지보수 또한 복잡했음. - 어렵게 EJB 컴포넌트를 만들었지만 컴포넌트를 배치하고 실행하려면 WAS가 필요한데 대부분 비싼 값을 하였다. - 이러한 여러가지 어려움이 있었지만 spring framework는 POJO(Plain Old Java Object)를 사용하여 EJB의 기능들을 지원하도록 해..

BE/Spring 2021.07.01

의존성 주입

# 스프링 의존성 관리 방법 - 스프링 프레임워크의 가장 중요한 특징은 객체의 생성과 의존관계를 컨테이너가 자동으로 관리한다는 점 * Dependency lookup - 컨테이너가 애플리케이션 운용에 필요한 객체를 생성하고 클라이언트는 컨테이너가 생성한 객체를 검색하여 사용하는 방식 (실제 개발과정에서 사용X) * Dependency Injection - 객체 사이의 의존관계를 스프링 설정 파일에 등록된 정보를 바탕으로 컨테이너가 자동으로 처리해줌 - 따라서 의존성 설정을 바꾸고 싶을 때 프로그램 코드를 수정하지 않고 스프링 설정 파일 수정만으로 변경사항을 적용할 수 있어서 유지보수 향상됨 - 컨테이너가 직접 객체들 사이에 의존관계를 처리하는 것을 의미 # 의존성 관계 - 객체와 객체의 결합 관계 - 하..

BE/Spring 2021.06.08

스프링이란?

* 먼저 프레임워크에 대해서 간단히 알아보겠습니다. - 프레임워크란? 특정한 목적에 맞게 프로그래밍을 쉽게 하기 위한 약속입니다. - 스프링은 자바언어를 기반으로 다양한 어플리케이션을 제작하기 위한 약속된 프로그래밍 틀 입니다. - 톰캣을 이용할 수 있으며, EJB에 비해서 코드의 경량화 그리고 개발 중에 테스트가 쉽다는 특징이 있습니다. * 설치방법 - 기본적으로 자바, 톰캣서버, 이클립스가 설치되어있어야 합니다. - 설치후 이클립스를 실행하여 상단의 help -> Eclipse Marketplace 를 들어가서 검색창에 STS를 검색하여 자신의 이클립스 버전에 맞는 STS를 설치합니다. - 설치가 완료되면 재부팅을 하고나서 다시 들어가면 스프링을 사용할 수 있습니다!

BE/Spring 2021.02.18