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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

基于注解进行bean的装配

發布時間:2024/2/28 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于注解进行bean的装配 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于注解進行bean的裝配

Ioc容器中添加節點:context:annotation-config/

IOC通過掃描classpath中的bean(類/組件),加載到IOC中并管理,不需要把bean顯示配置到文件中。

@Component給類添加一個組件注解,意思是該類需要被ioc容器管理。

@Autowired,表示注入功能,默認是按照類型注入,如果有兩個以上的類型就會出現異常,此時可用用 @Qualifier("userService"),指定需要注入那個bean

@Resource(name="userService"):表示注入功能需要指定要被注入的bean的ID。

注解分層

@Component(""):任何類需要被管理,都可以使用該注解。

@Controller(""):標識控制器

@Service(""):標識業務層

@Repository(""):標識持久層

基于classpath實現依賴注入

<context:component-scan

base-package="包名">/context:component-scan

包名可以寫組件共有的父包。

-------------------------------------------------------------------------------------------------------------------------

?

UserDao

package com.henu.dao; ? /*** @author George* @description**/ public interface UserDao {void insert(); }

UserDaoImpl

package com.henu.dao; ? import org.springframework.stereotype.Repository; ? /*** @author George* @description**/ @Repository("userDaoImpl") public class UserDaoImpl implements UserDao {public void insert() {System.out.println("userDao:insert()>>>>");} }

UserService

package com.henu.service; ? /*** @author George* @description**/ public interface UserService {void insert(); }

UserServiceImpl

package com.henu.service; ? import com.henu.dao.UserDao; import com.henu.dao.UserDaoImpl; import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; ? import javax.annotation.Resource; ? /*** @author George* @description**/ ? @Controller("userServiceImpl") public class UserServiceImpl implements UserService { ?@Resource(name = "userDaoImpl")public UserDao userDao; ?public void insert() {System.out.println("UserService.insert()+++++");userDao.insert();} ?public UserDao getUserDao() {return userDao;} ?public void setUserDao(UserDao userDao) {this.userDao = userDao;} }

UserController

package com.henu.controller; ? import com.henu.service.UserService; import org.springframework.stereotype.Component; ? import javax.annotation.Resource; ? /*** @author George* @description**/ @Component("userController") public class UserController {@Resource(name = "userServiceImpl")public UserService userService;public void execute(){System.out.println("userController");userService.insert();} }

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"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> ? <!--啟動注解--><context:component-scan base-package="com.henu"></context:component-scan> ? </beans>

【注】

?

Test

package com.henu; ? import com.henu.controller.UserController; import org.springframework.context.support.ClassPathXmlApplicationContext; ? /*** @author George* @description**/ public class Test {public static void main(String[] args) {//加載spring IoC配置文件//ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");//獲取控制器對象UserController bean = context.getBean(UserController.class);//ctrl + alt + v//調用控制器方法bean.execute();//關閉ioc容器context.close();} }

運行結果:

userController UserService.insert()+++++ userDao:insert()>>>>

總結

以上是生活随笔為你收集整理的基于注解进行bean的装配的全部內容,希望文章能夠幫你解決所遇到的問題。

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