Spring三種注入屬性的方式
阿新 • • 發佈:2019-02-10
Spring三種方法注入屬性
1. 準備工作:
1) 新建Dao包,Service包
2) 在每個包內新建對應的介面,以及impl包
UserDao
public interface
UserDao {
public void TestDao();
}
UserService
public interface UserService { public String testUserService(); }
3) 在impl包新增對應的實現類
UserDaoImpl
public class UserDaoImpl implementsUserDao { public void TestDao() { System.out.println("This UserDaoimpl"); } }
UserServiceImpl
public class UserServiceImpl implements UserService { private UserDao userDao; public String testUserService() { userDao.TestDao(); return null; } public UserDaogetUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } }
2. 注入屬性
1) <property>方法
直接在配置檔案裡新增需要的屬性>
<bean id="userDaoimpl" class="com.neusoft.spring.demo.dao.impl.UserDaoImpl"/> <bean id="userServiceImpl"class="com.neusoft.spring.demo.service.impl.UserServiceImpl"> <property name="userDao" ref="userDaoimpl"/> </bean>
2) 註解方法
註解是通過@Autowired來完成自動裝配工作的
a. 首先給需要注入的屬性添加註解
@Autowired private UserDao userDao;;
b. 配置
配置方法有兩種
a) 通過類
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
b) 通過在xis裡面新增context
首先在xsi後面新增這兩個名稱空間
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
接著新增
<context:annotation-config/>
c. 最後新增bean
<bean id="userDao" class="com.neusoft.spring.demo.dao.impl.UserDaoImpl"/> <bean id="userServiceImpl" class="com.neusoft.spring.demo.service.impl.UserServiceImpl"/>
3) 自動掃描機制注入
a. 首先給需要注入的屬性添加註解
@Autowired private UserDao userDao;
b. 給需要自動掃描的類添加註解
@Component public class UserServiceImpl implements UserService {
@Component public class UserDaoImpl implements UserDao {
@Component 不確定元件屬於哪個層的時候
@Service 標註業務層元件
@Controller 標註控制層元件
@Repository 標註資料訪問層元件
c. 新增context名稱空間
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
d. 新增需要自動掃描的類
<context:component-scan base-package="com.neusoft.spring.demo.service.impl" /> <context:component-scan base-package="com.neusoft.spring.demo.dao.impl"/>
3. 測試
@Test public void serviceTestXml(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); UserService userService =context.getBean("userServiceImpl", UserServiceImpl.class); userService.testUserService(); }