基于XML的属性装配

1、手动装配

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

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

  2、自动装配

    1.按类型装配:byType   

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

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

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

   <bean id="userService" class="com.neuedu.spring.bean.UserService"></bean>
  <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类:

 public class UserAction {
private User user; public User getUser() {
return user;
} public void setUser1(User user) {
this.user = user;
}
}

ApplicationContext配置:

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

测试代码:

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

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

基于XML的类的属性的装配的更多相关文章

  1. 基于xml文件实现系统属性配置管理

    文章标题:基于xml文件实现系统属性配置管理 . 文章地址: http://blog.csdn.net/5iasp/article/details/11774501 作者: javaboy2012 E ...

  2. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring基于XML装配Bean

    Bean 的装配可以理解为依赖关系注入,Bean 的装配方式也就是 Bean 的依赖注入方式.Spring 容器支持多种形式的 Bean 的装配方式,如基于 XML 的 Bean 装配.基于 Anno ...

  3. Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配

    一.Spring IOC 容器支持自动装配 Bean,所谓自动装配是指,不需要通过 <property> 或 <constructor-arg> 为 Bean 的属性注入值的过 ...

  4. mybatis学习笔记(四)-- 为实体类定义别名两种方法(基于xml映射)

    下面示例在mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现 Demo的基础上进行优化 以新增一个用户为例子,原UserMapper.xml配置如下: < ...

  5. Spring第一课:基于XML装配bean(四),三种实例化方式:默认构造、静态工厂、实例工厂

    Spring中基于XML中的装配bean有三种方式: 1.默认构造 2.静态工厂 3.实例工厂 1.默认构造 在我们在Spring的xml文件中直接通过:     <bean id=" ...

  6. mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现

    项目结构  基础入门可参考:mybatis学习笔记(一)-- 简单入门(附测试Demo详细过程) 开始体验 1.新建项目,新建类MybatisUtil.java,路径:src/util/Mybatis ...

  7. MyBatis之基于XML的属性与列名映射

    上一博客主要是对单表的增删改查,比较简单,而且每个属性与table表的列都是一一对应名字也一样,今天主要学习属性与table表列名不一致的处理,主要有两种一是属性与列名不一致,二是枚举的情况,这里暂时 ...

  8. spring框架对于实体类复杂属性注入xml文件的配置

    spring框架是javaWeb项目中至关重要的一个框架,大多web 项目在工作层次上分为持久层.服务层.控制层.持久层(dao.mapper)用于连接数据库,完成项目与数据库中数据的传递:服务层(s ...

  9. XML之自动生成类,添加,修改,删除类的属性

    1. class ClassHelperDemo { public static void Main() { #region 演示一:动态生成类. //生成一个类t. Type t = ClassHe ...

随机推荐

  1. jvm调优(二)

    栈内存溢出,主要发生在大数据批量处理的情况,一般解决方案:1.加大栈内存 2.分批处理(用事物,全通过则通过,没有通过则回滚) cpu过高,死锁啊,内存过高啊,i/0问题啊 都可以看 线程栈 jsta ...

  2. cron job error : c queue max run limit reached

    在cron job的日志中发现以下报错: ! c queue max run limit reached Wed Aug 28 12:56:00 2013 ! rescheduling a cron ...

  3. 一些API的用法

    //1.init初始化 NSString * str1 = [[NSString alloc] init]; NSLog(@"str1 = %@",str1); //2.initW ...

  4. Docker的Gitlab镜像的使用

    Gitlab是一款非常强大的开源源码管理系统.它支持基于Git的源码管理.代码评审.issue跟踪.活动管理.wiki页面,持续集成和测试等功能.基于Gitlab,用户可以自己搭建一套类似Github ...

  5. oracle DDL(create、alter、drop)

    一.创建表1.创建表CREATE TABLE <table_name>( column1 DATATYPE [NOT NULL] [PRIMARY KEY], column2 DATATY ...

  6. sh 脚本重启/更新 Tomcat 项目

    一.项目文件为一个 jar 包,无须解压 重启 Tomcat 项目 #!/bin/bash echo "kill hot-jdt" kill -9 `ps -ef|grep hot ...

  7. ViewPager+Fragment基本使用方法(附源码)

    ViewPager+Fragment可以做出多页面滑动效果,让我们的应用程序界面操作起来更加灵活 对于ViewPager和Fragment组件还不熟悉的朋友,可以先看看相关的资料. 首先在activi ...

  8. 【总结整理】WMS、WMTS、WFS

    参考:http://www.cnblogs.com/naaoveGIS/p/5508882.html WMTS:WMTS是OGC制定的一种发布瓦块地图的Web服务规范,wms主要是动态地图,wmts是 ...

  9. go语言的源码文件的分类及含义

    Go源码文件:名称以.go为后缀,内容以Go语言代码组织的文件 多个Go源码文件是需要用代码包组织起来的 源码文件分为三类:命令源码文件.库源码文件(go语言程序) 测试源码文件(辅助源码文件) 命令 ...

  10. webfrom 做项目的注意事项

    1.展示细节 如男女显示问题 不能显示true   false  时间转换成中文  民族显示汉字  不能直接显示代码2.用户名重复验证 从数据库中查询验证4.日期判断 判断年份有点问题   var y ...