Spring 종속성 주입(DI)의 세 가지 방법은 다음과 같습니다.
1. 인터페이스 주입
2. Setter 메서드 주입
3. 생성자 메서드 주입
(동영상 튜토리얼 추천: java 동영상 ) 이러한 세 가지 유형의 종속성 주입이 Spring에서 어떻게 구현되는지 소개하겠습니다.
먼저 다음 클래스가 필요합니다:
Interface Login.java
인터페이스 구현 클래스 LoginImpl.java
처리 클래스 LoginAction.java
다음과 같은 테스트 클래스 TestMain.java
LoginImpl.java도 있습니다.
package com.spring.test.di; public class LoginImpl implements Login{ public String getName(){ return "fengyun"; } } TestMain.java package com.spring.test.di; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class TestMain { /** * @param args */ public static void main(String[] args) {// 得到ApplicationContext对象 ApplicationContext ctx = new FileSystemXmlApplicationContext( "applicationContext.xml"); // 得到Bean LoginAction loginAction = (LoginAction) ctx.getBean("loginAction"); loginAction.execute(); } }
LoginAction.java는 사용된 주입 방법에 따라 약간 다를 수 있습니다.
삽입 방법에 따라 LoginAction.java 클래스를 살펴보겠습니다.
Setter 메서드 주입:package com.spring.test.di;
public class LoginAction {
private Login login;
public void execute() {
String name = login.getName();
System.out.print("My Name Is " + name);
}
/**
* @return the login
*/
public Logic getLogin() {
return login;
}
/**
* @param login
* the login to set
*/
public void setLogin(Login login) {
this.login = login;
}
}
는 LoginAction에서 로그인 유형 변수 login을 정의하지 않고 해당 setter/getter 메서드만 정의합니다. 여기서는 Spring의 종속성 주입 방법을 사용하고 있습니다.
applicationContext.xml 구성 파일은 다음과 같습니다.
<bean id="login" class="com.spring.test.di.LoginImpl"/> <bean id="loginAction" class="com.spring.test.di.LoginAction"> <property name="login" ref="login"></property> </bean>
이제 testMain.java를 실행하면 콘솔에 My Name Is fengyun이 출력되는 것을 확인할 수 있습니다.
좋아요, 스프링의 setter 메소드 주입입니다.
생성자 메서드 주입이름에서 알 수 있듯이 생성자 메서드 주입은 아래와 같이 DI의 목적을 달성하기 위해 LoginAction의 생성자에 의존한다는 의미입니다.
LoginAction.java package com.spring.test.di; public class LoginAction { private Login login; public LoginAction(Login login) { this.login = login; } public void execute() { String name = login.getName(); System.out.print("My Name Is " + name); } }
여기에 LoginAction의 생성자를 추가했습니다
applicationContext.xml 구성 파일은 다음과 같습니다.
<bean id="login" class="com.spring.test.di.LoginImpl"/> <bean id="loginAction" class="com.spring.test.di.LoginAction"> <constructorarg index="0" ref="login"></constructorarg> </bean>
구성에는 constructorarg를 사용합니다. index 속성은 생성자 메서드에서 매개변수의 순서를 나타내는 데 사용됩니다. 매개변수가 여러 개인 경우 0,1부터 순서대로 구성됩니다. ...
이제 testMain.java를 실행할 수 있으며 결과는 Setter 메소드 주입을 사용한 것과 똑같습니다.
한 가지 주의할 점은 생성자에 여러 매개변수가 있는 경우(예: 매개변수 1, 매개변수 2, 매개변수 2가 매개변수 1에 종속됨), 이 경우 생성자의 순서와 매개변수 1에 주의해야 합니다. 매개변수 2 이전에 배치되어야 합니다.
자주 사용하지 않는 인터페이스 주입에 대해 계속 이야기해 보겠습니다. LoginAction을 예로 들어 보겠습니다.
LoginAction.java package com.spring.test.di; public class LoginAction { private Logic login; public void execute() { try { Object obj = Class.forName("com.spring.test.di.LoginImpl") .newInstance(); login = (Login) obj; String name = login.getName(); System.out.print("My Name Is " + name); } catch (Exception e) { e.printStackTrace(); } } }
구성 파일:
<bean id="logic" class="com.spring.test.di.LoginImpl"/> <bean id="loginAction" class="com.spring.test.di.LoginAction"> </bean>
직장에서 가장 일반적으로 사용되는 것은 Setter와 생성자 두 가지 주입 방법.
추천 튜토리얼:
java 입문 프로그램위 내용은 Spring 종속성 주입의 세 가지 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사에서는 Java 프로젝트 관리, 구축 자동화 및 종속성 해상도에 Maven 및 Gradle을 사용하여 접근 방식과 최적화 전략을 비교합니다.

이 기사에서는 Maven 및 Gradle과 같은 도구를 사용하여 적절한 버전 및 종속성 관리로 사용자 정의 Java 라이브러리 (JAR Files)를 작성하고 사용하는 것에 대해 설명합니다.

이 기사는 카페인 및 구아바 캐시를 사용하여 자바에서 다단계 캐싱을 구현하여 응용 프로그램 성능을 향상시키는 것에 대해 설명합니다. 구성 및 퇴거 정책 관리 Best Pra와 함께 설정, 통합 및 성능 이점을 다룹니다.

이 기사는 캐싱 및 게으른 하중과 같은 고급 기능을 사용하여 객체 관계 매핑에 JPA를 사용하는 것에 대해 설명합니다. 잠재적 인 함정을 강조하면서 성능을 최적화하기위한 설정, 엔티티 매핑 및 모범 사례를 다룹니다. [159 문자]

Java의 클래스 로딩에는 부트 스트랩, 확장 및 응용 프로그램 클래스 로더가있는 계층 적 시스템을 사용하여 클래스로드, 링크 및 초기화 클래스가 포함됩니다. 학부모 위임 모델은 핵심 클래스가 먼저로드되어 사용자 정의 클래스 LOA에 영향을 미치도록합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
