基于XML的类的属性的装配

基于XML的属性装配

1、手动装配

  <!-- 属性的装配:手动装配 -->

1      <bean id="userService" class="com.neuedu.spring.bean.UserService"></bean>
2     <bean id="userAction" class="com.neuedu.spring.bean.UserAction">
3       <property name="userService" ref="userService"></property>
4     </bean>

  2、自动装配

    1.按类型装配:byType   

       首先检测当前bean中需要装配的属性的类型

       然后在IOC容器中查找匹配这个类型的bean

       如果类型匹配的bean是唯一的,那么就将这个匹配的bean注入到userAction

1   <bean id="userService" class="com.neuedu.spring.bean.UserService"></bean>
2   <bean id="userAction" autowire="byType" class="com.neuedu.spring.bean.UserAction"></bean>

     2.按bean的id值装配:byName

      首先检测当前bean中需要装配的属性的属性名,属性名是将setXxx()方法去掉set,首字母小写得到的

      然后根据属性名作为id的值,在IOC容器中查找对应的bean 

       如果能够找到,则将找到bean注入进去

  3、自动装配示例:

UserAction类:

复制代码
 1 public class UserAction {
 2     private User user;
 3 
 4     public User getUser() {
 5         return user;
 6     }
 7 
 8     public void setUser1(User user) {
 9         this.user = user;
10     }
11 }
复制代码

ApplicationContext配置:

1    <bean id="user1" class="com.neuedu.spring.bean.User">
2         <property name="username" value="张三"></property>
3     </bean>
4     <bean id="userAction" class="com.neuedu.spring.bean.UserAction" autowire="byName"></bean>

测试代码:

1   @Test
2     public void test24() throws Exception {
3        ApplicationContext ioc=new ClassPathXmlApplicationContext("ApplicationContext.xml");
4         UserAction bean = ioc.getBean(UserAction.class);
5         System.out.println(bean.getUser().getUsername());
6     }

   输出结果张三,证明byName是通过将setXxx()方法去掉set,首字母小写得到的属性名进行注入的

posted @   咕噜噜zmj  阅读(254)  评论(0)    收藏  举报
编辑推荐:
· 通过 Canvas 将后端发来的一帧帧图片渲染成“视频”的实现过程
· 当加密ID需要变成Guid:为什么我选择了AES-CBC而非GCM?
· 基于 epoll 的协程调度器——零基础深入浅出 C++20 协程
· 下划线字段在golang结构体中的应用
· SQL Server也能玩正则表达式?
阅读排行:
· C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
· 我的AI自学路线,可能对你有用
· 通过Canvas在网页中将后端发来的一帧帧图片渲染成“视频”的实现过程
· 如何做一个纯净版的ABP vNext 脚手架
· 告别 DOM 的旧时代:从零重塑 Web 渲染的未来
点击右上角即可分享
微信分享提示