spring原始注解开发-01
我們使用xml-Bean標簽的配置方式和注解做對比理解
1.創建UserDao接口以及UserDao的實現類UserDaoImpl(接口代碼省略)
public class UserDaoImpl implements UserDao {@Overridepublic void save1() {System.out.println("save running...");} }2.創建UserService接口以及UserServiceImpl實現類(接口代碼省略)
public class UserServiceImpl implements UserService {private UserDao userDao;public void setUserDao(UserDao userDao) {this.userDao = userDao;}@Overridepublic void sava() {userDao.save1();} }3.配置applicationContext.xml配置文件
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="userDao" class="com.hao.dao.impl.UserDaoImpl"></bean><bean id="userService" class="com.hao.service.impl.UserServiceImpl"><property name="userDao" ref="userDao"/></bean> </beans>如果注解中有不明白的請訪問我的博客中的依賴注入分析(xml配置)
4.模擬web端進行測試
結果:save running…
===============================================================================================================================================================================================================================================================
然后實現注解進行操作
1.創建UserDao接口及其實現類UserDaoImpl(接口代碼省略)
注:注釋掉的bean標簽的內容相當于下面的表簽
2.創建UserService接口及其實現類UserServiceImpl(接口代碼省略)
//<bean id="userService" class="com.hao.service.impl.UserServiceImpl"> @Component("userService") public class UserServiceImpl implements UserService {// <property name="userDao" ref="userDao"/>@Autowired@Qualifier("userDao") //要注入的id值private UserDao userDao;public void setUserDao(UserDao userDao) {this.userDao = userDao;}@Overridepublic void sava() {userDao.save1();} }3.進行web層模擬測試
public class UserController {public static void main(String[] args) {ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");UserService service = (UserService) context.getBean("userService");service.sava();} }結果:
然后發現報錯了,查看錯誤原因:發現是我們雖然使用了注解進行配置,但是沒有告訴spring去哪里找注解,所以造成了沒有創建實例
#配置組件掃描l告訴spring在哪個包下及其子包下的Bean需要進行掃描以便識別使用注解配置的類、字段和方法
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置組件掃描--> <!-- spring會掃描hao包下的所有子包和該包下的所有類--><context:component-scan base-package="com.hao"/> </beans>再此測試:
結果:save running…
補充:思考我們在類前使用@Component注解,并不能分辨這是哪一層上的(dao層,servce層,controller層),所以就引入了另外三個標簽進行分辨,請訪問spring原始注解開發-02查看內容
總結
以上是生活随笔為你收集整理的spring原始注解开发-01的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring原始注解
- 下一篇: Spring原始注解开发-02