Spring에서 자주 사용되는 세 가지 주입 방법
1. 구성 방법은 반사를 사용하여 구성 방법을 통해 주입을 완료합니다.
먼저 테스트 프로젝트의 구조를 간단히 이해해 보겠습니다. 이는 maven으로 구축되었으며 4개의 패키지로 구성됩니다.
entity: 사용자 클래스가 하나만 있는 저장소 엔터티
dao: 데이터 액세스, 하나의 인터페이스 , 두 가지 구현 클래스
service: 서비스 레이어, 인터페이스, 구현 클래스, 구현 클래스는 IUserDao에 따라 다름
test: 테스트 패키지
Spring 구성 파일에 UserService를 등록하고, 다음을 통해 UserDaoJdbc를 주입합니다. constructor-arg 태그 UserService
<!-- 注册userService --> <bean id="userService" class="com.lyu.spring.service.impl.UserService"> <constructor-arg ref="userDaoJdbc"></constructor-arg> </bean> <!-- 注册jdbc实现的dao --> <bean id="userDaoJdbc" class="com.lyu.spring.dao.impl.UserDaoJdbc"></bean>
의 매개변수화된 생성자로 매개변수화된 생성자가 하나만 있고 매개변수 유형이 주입된 Bean의 유형과 일치하는 경우 생성자에 주입됩니다.
public class UserService implements IUserService { private IUserDao userDao; public UserService(IUserDao userDao) { this.userDao = userDao; } public void loginUser() { userDao.loginUser(); } } @Test public void testDI() { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); // 获取bean对象 UserService userService = ac.getBean(UserService.class, "userService"); // 模拟用户登录 userService.loginUser(); }
테스트 인쇄 결과: jdbc-login 성공적인
참고: 사용자 로그인을 시뮬레이트하는 loginUser 메소드는 실제로 출력 명령문을 인쇄합니다. jdbc에 의해 구현된 클래스의 출력은 다음과 같습니다. mybatis에 의해 구현된 것은 :mybatis-Login 성공입니다.
2. Setter도 Reflection을 사용하는데, 주입은 Setter를 통해서 완료됩니다.
구성 파일은 다음과 같습니다.
<!-- 注册userService --> <bean id="userService" class="com.lyu.spring.service.impl.UserService"> <!-- 写法一 --> <!-- <property name="UserDao" ref="userDaoMyBatis"></property> --> <!-- 写法二 --> <property name="userDao" ref="userDaoMyBatis"></property> </bean> <!-- 注册mybatis实现的dao --> <bean id="userDaoMyBatis" class="com.lyu.spring.dao.impl.UserDaoMyBatis"></bean>
참고: 위의 두 가지 작성 방법 모두 허용됩니다. Spring은 이름 값의 각 단어의 첫 글자를 대문자로 변환한 다음 앞에 "set"을 붙여서 형식을 만듭니다. 메소드 이름을 지정한 다음 해당 클래스에서 메소드를 찾아 리플렉션을 통해 호출하여 주입을 수행합니다.
주의하세요: name 속성 값은 클래스의 멤버 변수 이름이나 set 메소드의 매개변수 이름과 관련이 없습니다. 다음 작성 메소드는 성공적으로 실행될 수 있습니다.
한 가지 더 필요한 것이 있습니다. 참고: set 메소드를 통해 속성을 주입하면 스프링은 기본 빈 매개변수 생성자를 통해 객체를 인스턴스화하므로 클래스에 매개변수가 있는 생성자를 작성하는 경우 빈 매개변수 생성자를 작성해야 합니다. 그렇지 않으면 Spring이 객체를 인스턴스화할 수 없어 오류가 발생합니다. 3. 주석을 기준으로 일반적으로 사용되는 주석은 "@Autowried" 및 "@Resource"입니다. 샘플 코드public class UserService implements IUserService { private IUserDao userDao1; public void setUserDao(IUserDao userDao1) { this.userDao1 = userDao1; } public void loginUser() { userDao1.loginUser(); } }추천 튜토리얼: "
Java Tutorial"
위 내용은 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를 무료로 생성하십시오.

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

드림위버 CS6
시각적 웹 개발 도구

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

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
