>  기사  >  Java  >  스프링 프레임워크 학습(1)

스프링 프레임워크 학습(1)

黄舟
黄舟원래의
2016-12-29 13:07:521541검색

1. Spring 프레임워크란 무엇인가요?
Spring은 J2EE 애플리케이션 프레임워크입니다. 주로 javaBeans의 라이프사이클을 관리하는 경량 컨테이너입니다. Struts 프레임워크, ibatis 프레임워크 등과 결합하여 사용할 수도 있습니다.


2, 아키텍처 개요

스프링 프레임워크 학습(1)

1) IoC(Inversion of Control) Inversion of Control, 객체 생성 책임의 역전, Spring BeanFactory는 애플리케이션에서 개체를 인스턴스화하고, 찾고, 구성하고, 이러한 개체 간의 종속성을 설정하는 IoC 컨테이너의 핵심 인터페이스입니다. XmlBeanFactory는 BeanFactory 인터페이스를 구현하고 xml 구성 파일 데이터를 얻어 애플리케이션 객체와 객체 간의 종속성을 형성합니다.
Spring에는 세 가지 주입 방법이 있는데, 하나는 세트 주입, 하나는 인터페이스 주입, 다른 하나는 생성자 주입입니다.

2) AOP 관점 지향 프로그래밍
AOP는 아래 그림과 같이 비즈니스 1과 비즈니스 2 모두 각 비즈니스에 동일한 코드를 추가하는 대신 공통된 작업이 필요합니다. 코드를 다시 작성하고 두 기업이 이 코드를 함께 사용하도록 하는 것이 좋습니다.

Spring에서 관점 지향 변경을 구현하는 방법에는 두 가지가 있습니다. 하나는 동적 프록시이고 다른 하나는 CGLIB입니다. 동적 프록시는 인터페이스를 제공해야 하며 CGLIB 구현에는 상속이 있습니다.

3. 왜 스프링 프레임워크를 사용하나요?
스프링 프레임워크를 사용하기 전에는 서비스 계층에서 dao 계층 개체를 사용해야 했고, 서비스 계층에서 새 개체를 만들어야 했습니다.

//dao层对象
public class UserDao{
   publicvoid insert(User user){}
}
 
//service层对象
public classUserService{
   publicvoid insert(User user){
       UserDaouserdao = new UserDao();
       userdao.insert(user);
   }
}

기존 문제: 레이어 간의 종속성.
프레임워크 사용 후:

//dao层对象
public class UserDao{
    publicvoid insert(User user){}
}
 
//service层对象
public classUserService{
   privateUserDao userdao;
 
   publicUserDao getUserdao() {
      returnuserdao;
   }
   publicvoid setUserdao(UserDao userdao) {
      this.userdao= userdao;
   }
 
   publicvoid insert(User user){
      userdao.insert(user);
   }
 
}

서비스 레이어에서 dao 레이어 객체를 사용하려면 xml 구성 파일에서 객체 생성 방법과 관계를 구성해야 합니다. 결합되면 스프링 프레임워크에 맡겨집니다.

4. 프레임워크의 장점

경량 컨테이너 프레임워크는 방해가 되지 않습니다
IoC 컨테이너를 사용하면 객체 간의 직접적인 관계, 인터페이스 지향 프로그래밍을 더 쉽게 결합하고 결합을 줄일 수 있습니다
Aop 기능 확장이 용이하고 OCP 개발 원칙을 따르기 쉽습니다
생성된 객체는 기본적으로 싱글톤이며, 처리를 위해 싱글톤 모드를 사용할 필요가 없습니다


5. 단점: 비즈니스 함수는 스프링 관련 함수, 종속성 및 스프링 환경에 의존합니다.

위 내용은 Spring Framework 학습(1) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.