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 중국어 웹사이트의 기타 관련 기사를 참조하세요!