Spring Fundamentals - 반전 제어
8737 단어 webdevspringjavaprogramming
용수철 모듈은 느슨하게 결합된 것이다.개발자는 필요에 따라 모듈을 선택하여 응용 프로그램을 구축할 수 있다.
이 게시물의 데모:
Spring 프레임워크 소개
먼저 Spring 프레임워크의 기능과 모듈을 간략하게 소개하겠습니다.
특징.
묘사
라이트급
용수철 탱크가 매우 작다.기본 Spring 응용 프로그램은 10MB보다 작습니다.내장형 Tomcat 서버와 함께 배포할 수 있으며 중형 어플리케이션 서버가 필요하지 않습니다.
비침입성
Spring 응용 프로그램은 POJO를 사용하여 개발되었습니다.미리 정의된 클래스를 확장하거나 실현할 필요가 없습니다.
느슨한 결합
Spring은 종속 주입 및 면방향 프로그래밍을 사용하여 느슨한 결합을 촉진하는 코드를 사용합니다.
반전 제어(IoC)
IoC는 어플리케이션 객체의 라이프 사이클과 종속성을 책임집니다.
용수철 용기
Spring 컨테이너는 객체의 종속성 작성, 초기화 및 관리를 담당합니다.
AOP(Anginuity Program)
로그, 사무, 보안 등 지원 기능 (주목점) 과 응용 프로그램 핵심 업무 논리의 분리를 추진합니다.
봄 5 일.x에는 다음과 같은 주요 모듈 그룹이 있습니다.
스프링 제어 반전
일반적으로 개발자는
new
조작부호를 사용하여 의존적인 응용 프로그램 대상을 만들 책임이 있다.따라서 응용 프로그램 의존 관계의 모든 변경 사항은 코드를 변경해야 한다.응용 프로그램이 점점 커지면서 긴밀한 결합과 복잡함을 초래할 것이다.제어 반전 (IoC) 은 더 느슨한 결합 프로그램을 만듭니다.IoC는 응용 프로그램 대상의 창설, 초기화, 삭제의 책임을 응용 프로그램에서 프레임워크의 제3자로 옮긴다.제3자는 응용 프로그램의 대상 관리와 의존 관계를 책임질 것이다.이것은 응용 프로그램을 유지보수, 테스트, 재사용하기 쉽게 한다.Spring 프레임워크는 IoC 구현을 위해 종속 주입(DI)을 사용합니다.
Spring이 관리하는 객체를 bean이라고 합니다.Spring 덕분에 직접 객체를 만들 필요가 없습니다.의존 주입은 설정을 통해 대상을 만드는 방법을 설명할 수 있습니다.
DI는 다음과 같은 소프트웨어 설계 모델입니다.
Spring은 BeanFactory와 ApplicationContext(인터페이스) 두 가지 종류의 컨테이너를 제공합니다.ApplicationContext는 BeanFactory에서 상속된 개발의 첫 번째 컨테이너입니다.ApplicationContext는 국제화, 검증 등 기업 서비스를 지원하는 추가 기능을 제공합니다.
// org.springframework.context.support.ClassPathXmlApplicationContext
// is the most common implementation of ApplicationContext
ApplicationContext context = new ClassPathXmlApplicationContext("config.xml");
Object obj = context.getBean("exampleService");
콩 공장응용 프로그램 컨텍스트
주석 기반 DI 지원이 없습니다.
주석 기반 DI 지원
엔터프라이즈 서비스 지원이 없습니다.
기업 서비스 지원: 검증, 국제화 등.
기본적으로 지연 로드 지원
기본적으로 즉시 불러오는 것을 지원합니다.비안은 불러오는 동안 실례화됩니다.
Spring을 사용하면 다양한 방법으로 메타데이터를 POJO에 구성할 수 있습니다.
결론
마지막으로 XML 구성을 기반으로 한 소형 IoC 예제를 소개하겠습니다.
package com.maxdemaio.service;
public class BlogPostService {
public void display() {
System.out.println("Hi, Welcome to the Blog Post Generation application");
}
}
<!-- Example object in a config.xml file -->
<!--
1. <beans> is the root element & also includes namespace declarations
2. Bean definition
3. id attribute represents a unique bean identifier
4. class attribute represents a fully qualified class name
-->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="blogPostService" class="com.maxdemaio.service.BlogPostService" />
</beans>
package com.maxdemaio.client;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.maxdemaio.service.BlogPostService;
public class Client {
public static void main(String[] args) {
// ApplicationContext container is instantiated by loading the configuration
// from config.xml available in application classpath
ApplicationContext context = new ClassPathXmlApplicationContext("config.xml");
// Access bean with id “blogPostService"
// Typecast from Object type to blogPostService type
BlogPostService blogPostService = (BlogPostService) context.getBean("blogPostService");
// Invoke display method of blogPostService to display greeting on console
blogPostService.display();
}
}
우리는 new
키워드를 사용하지 않고, 대신 위탁 관리 Springbean을 설정했다.이것은 우리가 느슨하게 결합된 코드를 가지도록 허락한다.인용된 작품
Reference
이 문제에 관하여(Spring Fundamentals - 반전 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maxdemaio/spring-basics-inversion-of-control-2dn9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)