日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring原始注解开发-01

發布時間:2024/10/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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端進行測試

public class UserController {public static void main(String[] args) {ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");UserService service = (UserService) context.getBean("userService");service.sava();} }

結果:save running…

===============================================================================================================================================================================================================================================================
然后實現注解進行操作
1.創建UserDao接口及其實現類UserDaoImpl(接口代碼省略)

//<bean id="userDao" class="com.hao.dao.impl.UserDaoImpl"></bean> @Component("userDao") public class UserDaoImpl implements UserDao {@Overridepublic void save1() {System.out.println("save running...");} }

注:注釋掉的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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。