Spring的注解装配Bean
  Spring2.5 引入使用注解去定义Bean
    @Component 描述Spring框架中Bean
  Spring的框架中提供了与@Component注解等效的三个注解
    @Repository 用于对DAO实现类进行标注
    @Service 用于对Service实现类进行标注
    @Controller 用于对Controller实现类进行标注
    ***** 三个注解为了后续版本进行增强的
  使用注解,那么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:annotation-config/>  <!--支持注解-->
  <context:component-scan base-package="cn.yzu.spring3"/>  <!--自动扫描-->
</beans>

Bean的属性注入
  普通属性

@Value(value="你好")
private String info;

  对象属性
    @Autowired:自动装配默认使用类型注入.
    @Qualifier("userDao"):按名称进行注入.

@Autowired
@Qualifier("userDao")
private UserDao userDao;

    等价于

@Resource(name="userDao")
private UserDao userDao;

Bean其他的属性的配置
  配置Bean初始化方法和销毁方法:init-method 和 destroy-method
    @PostConstruct 初始化
    @PreDestroy 销毁
  配置Bean的作用范围:@Scope("singleton")

@Service(value="userService")
@Scope("singleton")
public class UserService {
  @Value(value="你好")
  private String info;
  @Resource(name="userDao")
  private UserDao userDao;
  public void sayHello(){
    System.out.println("Hello Spring Annotation..."+info);
  }   @PostConstruct
  public void setup(){
    System.out.println("初始化...");
  }   @PreDestroy
  public void teardown(){
    System.out.println("销毁...");
  }
}

Spring3.0提供使用Java类定义Bean信息的方法(用的很少)

@Configuration
public class BeanConfig {
  @Bean(name="car")
  public Car showCar(){
    Car car = new Car();
    car.setName("长安");
    car.setPrice(40000d);
    return car;
  }   @Bean(name="product")
  public Product initProduct(){
    Product product = new Product();
    product.setName("空调");
    product.setPrice(3000d);
    return product;
  }
}
@Test
public void demo1(){
  ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
  Car car = (Car) applicationContext.getBean("car");
  Product product = (Product) applicationContext.getBean("product");
  System.out.println(car);
  System.out.println(product);
}

实际开发中使用XML还是注解?
  XML:有利于bean管理
  注解:注入属性的时候比较方便
  两种方式结合:一般使用XML注册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/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">
  <!--使@Resource、@ PostConstruct、@ PreDestroy、@Autowired注解生效-->
  <context:annotation-config/>   <bean id="orderDao" class="cn.yzu.spring3.demo3.OrderDao"></bean>
  <bean id="customerService" class="cn.yzu.spring3.demo3.CustomerService"></bean>
</beans>
public class CustomerService {
  @Autowired
  @Qualifier("orderDao")
  private OrderDao orderDao;   @Override
  public String toString() {
    return "CustomerService [customerDao=" + customerDao + ", orderDao="+ orderDao + "]";
  }
}

IOC装配Bean(注解方式)的更多相关文章

  1. Spring框架(3)---IOC装配Bean(注解方式)

    IOC装配Bean(注解方式) 上面一遍文章讲了通过xml来装配Bean,那么这篇来讲注解方式来讲装配Bean对象 注解方式需要在原先的基础上重新配置环境: (1)Component标签举例 1:导入 ...

  2. spring IOC装配Bean(注解方式)

    1 Spring的注解装配Bean (1) Spring2.5 引入使用注解去定义Bean @Component 描述Spring框架中Bean (2) Spring的框架中提供了与@Componen ...

  3. Spring 框架 详解 (四)------IOC装配Bean(注解方式)

    Spring的注解装配Bean Spring2.5 引入使用注解去定义Bean @Component  描述Spring框架中Bean Spring的框架中提供了与@Component注解等效的三个注 ...

  4. 05_IOC容器装配Bean(注解方式)

    IOC容器装配Bean(注解方式) 1.使用注解方式进行Bean注册 xml 方式: <bean id="" class=""> spring2.5 ...

  5. Spring框架(2)---IOC装配Bean(xml配置方式)

    IOC装配Bean (1)Spring框架Bean实例化的方式提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 下面先写这三种方法的applicat ...

  6. Spring 框架 详解 (三)-----IOC装配Bean

    IOC装配Bean: 1.1.1 Spring框架Bean实例化的方式: 提供了三种方式实例化Bean. * 构造方法实例化:(默认无参数) * 静态工厂实例化: * 实例工厂实例化: 无参数构造方法 ...

  7. 04_IOC容器装配Bean(xml方式)

    IOC容器装配Bean(xml方式) 1.Spring 提供配置Bean三种实例化方式 1)使用类构造器实例化(默认无参数) <bean id="bean1" class=& ...

  8. Spring框架---IOC装配Bean

    IOC装配Bean (1)Spring框架Bean实例化的方式提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 下面先写这三种方法的applicat ...

  9. Spring总结四:IOC和DI 注解方式

    首先我们要了解注解和xml配置的区别: 作用一样,但是注解写在Bean的上方来代替我们之前在xml文件中所做的bean配置,也就是说我们使用了注解的方式,就不用再xml里面进行配置了,相对来说注解方式 ...

随机推荐

  1. Codeforces Round #342 (Div. 2) C. K-special Tables(想法题)

    传送门 Description People do many crazy things to stand out in a crowd. Some of them dance, some learn ...

  2. BZOJ3168: [Heoi2013]钙铁锌硒维生素

    设$A^TC=B^T$,这样$C_{ij}$表示$B_j$的线性表出需要$A_i$,那么$B_j$可以替换$A_i$,根据$C=(A^T)^{-1}B^T$求出$C$.要求字典序最小完美匹配,先求任意 ...

  3. 【Linux】使用update-alternatives命令进行版本的切换

    引言 在Redhat中也有此功能,用于切换不同版本. 在Debian系统中,我们可能会同时安装有很多功能类似的程序和可选配置,可能会出现同一软件的多个版本并存的场景.比如像是一些编程语言工具,一些系统 ...

  4. 同一网站中HTML相对路径引用

    ../表示目录的上一级 如:一个网站文件夹text里有HTML,JS,CSS....文件夹,HTML文件夹有个text.html, JS文件夹有个text.js, CSS文件夹中有个text.css. ...

  5. 漫谈JVM

    背景介绍 JVM已经是Java开发的必备技能了,JVM相当于Java的操作系统. JVM,java virtual machine, 即Java虚拟机,是运行java class文件的程序. Java ...

  6. 11月6日下午PHP注册审核(审核状态控制登录、可以更改审核状态)

    1.创建登录界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  7. yuv420转rgb 及 rgb转bmp保存

    /// <summary> /// 将一桢 YUV 格式的图像转换为一桢 RGB 格式图像. /// </summary> /// <param name="y ...

  8. 面试题目——《CC150》树与图

    面试题4.1:实现一个函数,检查二叉树是否平衡.在这个问题中,平衡树的定义如下:任意一个结点,其两颗子树的高度差不超过1. 思路:两个方法,第一种速度较快 package cc150; public ...

  9. React.js入门笔记(续):用React的方式来思考

    本文主要内容来自React官方文档中的"Thinking React"部分,总结算是又一篇笔记.主要介绍使用React开发组件的官方思路.代码内容经笔者改写为较熟悉的ES5语法. ...

  10. [CentOs7]搭建ftp服务器

    摘要 vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux. ...