Spring Autowire

Autowire:自动装配

autowire的实现方式有2种,但是其最终是通过autoWire来修饰bean,并让bean在上下文中具有自动装配的能力.

实现autowire的方法有2种:

第一种在配置直接配置bean xml文件,如:<bean id="customer" class="com.ric.demo.Customer" autowire="constructor"></bean>

<bean id="person" class="com.ric.demo.Person">       <property name="name" value="john"/>       <property name="age" value="20"/>       <property name="gender" value="1"/></bean>这种方式可以让bean在上下文中通过 autowire的值判断自动装配规则,byName是通过名字匹配,byType是通过类型匹配(这时候上下文中只能有一种这种类型的bean否则会报错),default(不会装配),contructor(根据构造器来装配,这时候会把上下文中同名的bean当作参数传入构造器中来装配)

第二种:通过@Autowired注解来实现,这种实现方式需要在自动装配的地方加上@Autowired来修饰,然后具体spring如何扫描呢:1、通过org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor 来实现,在定义beans的上下文中加上<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor">来处理2、把xml中这个bean 对应的xml配置给注释掉,并在beans中加上自动扫描的包,然后在要装配的bean的class前加上@Component,对应的属性上加上@Autowired就可以了。两种方式都是通过将bean置于上下文中,这样context可以通过扫描或者配置来给对应的bean自动装配,关键是要让你要暴露的bean置于上下文当中这种通过@Autowired注解(包括以上1,2)来自动装配时@Autowired可以这样@Autowired(required=false)来修饰你的自动装配是不是必要的,如果为false时那么当被装配的属性为空不会出现异常报错。这时还有另外一个注解配合使用能够实现第一种方法中的byName的方式。eg.@Autowired(required=false)// 装配不上时不会出现异常@Qualifier("PersonBean1")// 匹配上下文与Qualifier中参数相同名的bean

 
时间: 2024-08-19 06:52:25

Spring Autowire的相关文章

自动装配【Spring autowire】

public class AutoWiringDao { private String daoName; public void setDaoName(String daoName) { this.daoName = daoName; } public String getDaoName() { return daoName; } public void say(String word) { System.out.println(daoName + "===AutoWiringDao===&qu

Spring Autowire自动装配

在Spring中,支持 5 自动装配模式. no – 缺省情况下,自动配置是通过"ref"属性手动设定 byName – 根据属性名称自动装配.如果一个bean的名称和其他bean属性的名称是一样的,将会自装配它. byType – 按数据类型自动装配.如果一个bean的数据类型是用其它bean属性的数据类型,兼容并自动装配它. constructor – 在构造函数参数的byType方式. autodetect – 如果找到默认的构造函数,使用"自动装配用构造";

在servlet中用spring @Autowire注入Bean

在servlet中新增init方法: public void init(ServletConfig config) { super.init(config); SpringBeanAutowiringSupport.processInjectionBasedOnServletContext (this,config.getServletContext()); } 原文地址:https://www.cnblogs.com/ggqzz/p/8421772.html

Spring9 : Autowire(自动装配)机制

原文出处: 五月的仓颉 为什么Spring要支持Autowire(自动装配) 先写几个类,首先定义一个Animal接口表示动物: 1 2 3 4 5 public interface Animal {        public void eat();       } 写一个Animal接口的实现Tiger类: 1 2 3 4 5 6 7 8 9 10 11 12 public class Tiger implements Animal {     @Override     public vo

Struts2+Spring集成合并

前边单独总结了Struts2,Spring和Ibaits框架了,那么怎么结合使用呢?这次先来看一下Sturts2和Spring的集成合并.其实挺简单的,就是导入各自的jar包以及连接彼此的jar包,分好彼此的工作就可以了. 好看一下Struts2+Spring的集成方案!  Struts2和Spring集成有两种方案,是根据action的创建来划分的!  方案一,Struts2负责流程,Spring负责对象的创建:Action由Struts2框架负责创建:Service由Spring框架负责创建

struts2+spring的两种整合方式

借助于Spring插件(Struts2-spring-plugin-XXX.jar),我们可以非常简单地完成Spring和Struts2的整合,这种整合包括让Action自动装配Spring容器中的Bean,以及让Spring管理应用中的Action两种方式,不管采用哪种方式,完成Struts2和Spring的整合都是非常简单的,而且差别不大.一旦在Web应用中安装了Spring插件,即可充分利用该插件提供的功能: 1,可以通过Spring来创建所有的Action,Interceptor和Res

Spring框架整合Struts2

1,用Spring架构,及Struts2-spring-plugin插件 导入Spring的dist全部所需的jar包 Struts2的spring插件 struts2-spring-plugin.XX.jar struts2的核心包 struts2-core.XX.jar xwork- core.XX.jar commons.logging.XX.jar ...根据需要选择导入 2,配置web.xml中applicationContext.xml的参数路径及侦听器 <context-param

【Spring9】AutoWire(自动装配)机制

为什么Spring要支持Autowire(自动装配) 先写几个类,首先定义一个Animal接口表示动物: 1 public interface Animal { 2 3 public void eat(); 4 5 } 写一个Animal接口的实现Tiger类: 1 public class Tiger implements Animal { 2 3 @Override 4 public void eat() { 5 System.out.println("Tiger.eat()");

Autowire(自动装配)机制

为什么Spring要支持Autowire(自动装配) 先写几个类,首先定义一个Animal接口表示动物: 1 public interface Animal { 2 3 public void eat(); 4 5 } 写一个Animal接口的实现Tiger类: 1 public class Tiger implements Animal { 2 3 @Override 4 public void eat() { 5 System.out.println("Tiger.eat()");