`
leon.s.kennedy
  • 浏览: 111208 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Spring IOC AutoWire

 
阅读更多

自动装配:

    a) byName

b)     byType

c)     如果所有的bean都用同一种,可以使用beans的属性:default-autowire

 

 

 <bean name="userDAO" class="com.dao.impl.UserDAOImpl">
   <property name="daoId" value="1"></property>
  </bean>
 
  <bean name="userDAO2" class="com.dao.impl.UserDAOImpl">
   <property name="daoId" value="2"></property>
  </bean>
 
  <bean id="userService" class="com.service.UserService" scope="prototype" >
  </bean>

 

UserDAOImpl中重写toString():

@Override
 public String toString() {
  return "daoId=" + daoId;
 }

 

测试UserService类自动装配UserDAOImpl

  ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
  UserService service = (UserService)ctx.getBean("userService");
  System.out.println(service.getUserDAO()); //1

 

注意:byType时,如果出现了两个相同类型时,则报错。原因很简单,Spring不知道要注入到哪个中

byName是根据 bean中的属性名

 

The Spring container is able to autowire relationships between collaborating beans. This means that it is possible to automatically let Spring resolve collaborators (other beans) for your bean by inspecting the contents of the BeanFactory. The autowiring functionality has five modes. Autowiring is specified per bean and can thus be enabled for some beans, while other beans will not be autowired. Using autowiring, it is possible to reduce or eliminate the need to specify properties or constructor arguments, thus saving a significant amount of typing. [2] When using XML-based configuration metadata, the autowire mode for a bean definition is specified by using the autowire attribute of the <bean/> element. The following values are allowed

Autowiring modes

ModeExplanation
no

No autowiring at all. Bean references must be defined via a ref element. This is the default, and changing this is discouraged for larger deployments, since explicitly specifying collaborators gives greater control and clarity. To some extent, it is a form of documentation about the structure of a system.

byName

Autowiring by property name. This option will inspect the container and look for a bean named exactly the same as the property which needs to be autowired. For example, if you have a bean definition which is set to autowire by name, and it contains a master property (that is, it has asetMaster(..) method), Spring will look for a bean definition namedmaster, and use it to set the property.

byType

Allows a property to be autowired if there is exactly one bean of the property type in the container. If there is more than one, a fatal exception is thrown, and this indicates that you may not use byTypeautowiring for that bean. If there are no matching beans, nothing happens; the property is not set. If this is not desirable, setting thedependency-check="objects" attribute value specifies that an error should be thrown in this case.

constructor

This is analogous to byType, but applies to constructor arguments. If there isn't exactly one bean of the constructor argument type in the container, a fatal error is raised.

autodetect

Chooses constructor or byType through introspection of the bean class. If a default constructor is found, the byType mode will be applied.

 

分享到:
评论

相关推荐

    springioc的详细讲解

    Spring容器通过setter方法、构造函数或自动装配(byName, byType, autowire)来注入Bean的依赖。这样,我们不需要在代码中手动创建和管理对象,而是由Spring容器自动完成。 4. **Bean的作用域**:Spring提供了多种...

    spring_ioc.docx

    【Spring 框架与控制反转 (IOC) 知识详解】 Spring 框架是 Java Web 开发中广泛使用的轻量级框架,其核心特性是控制反转 (IOC) 和依赖注入 (DI)。控制反转是指将对象的创建权从应用程序代码转移到框架,即不再由...

    maven-spring-ioc

    **Spring IoC 框架详解** Spring框架是Java开发中的一个核心组件,它提供了许多功能,其中最重要的一项就是Inversion of Control(IoC),也称为Dependency Injection(DI)。IoC容器是Spring的核心,它负责管理...

    spring ioc使用教程

    Spring允许通过`autowire`属性实现自动装配,比如`byType`和`byName`,让Spring自动查找并注入匹配类型的Bean。 11. **注解实验**: Spring提供了诸如`@Component`、`@Service`、`@Repository`、`@Controller`等...

    spring示例代码好又全.rar

    内容如下: spring.rar [spring_aop1] [spring_aop2] [spring_aop3] [spring_aop4] [spring_autowire_byName] [spring_autowire_byType] [spring_beginning] [spring_hibernate_1] [spring_hibernate_2] ...

    spring在IoC容器中装配Bean详解

    Spring 在 IoC 容器中装配 Bean 详解 Spring 框架中的 IoC 容器是一个核心组件,它提供了 Bean 的装配、管理和依赖注入等功能。在 Spring 框架中,IoC 容器是 Bean 的容器,负责创建、管理和装配 Bean。在本文中,...

    全网最全3585页Java核心知识.pdf

    Autowire是Spring IOC容器中的一种特性,允许我们自动注入依赖。通过使用Autowire特性,我们可以让Spring框架自动发现和注入依赖,省时又省力。 5. Java核心知识点总结 Java核心知识点包括Java语言基础、Java集合...

    撸一撸Spring Framework-IoC-BeanDefinition(csdn)————程序.pdf

    在Spring Framework中,IoC(Inversion of Control,控制反转)是核心概念之一,它使得应用程序的组件不再直接创建依赖对象,而是由Spring容器来管理和维护。BeanDefinition就是实现这一概念的关键元素,它包含了...

    Spring学习笔记总结

    Spring提供了多种类型的Bean管理机制,包括自动装配(Autowire)、Setter Injection和Constructor Injection。 生命周期 在Spring中,Bean的生命周期是指Bean从创建到销毁的整个过程。Spring提供了多种类型的生命...

    spring-core.pdf

    在《spring-core.pdf》文档中,主要介绍了Spring框架的核心技术(Core Technologies),特别是第5.3.2版中关于IoC容器的详细内容。IoC(Inversion of Control)容器是Spring框架的核心组成部分之一,它负责管理应用...

    SSH学习之spring

    Spring IoC容器是Spring的核心,它负责创建、管理和装配对象。通过依赖注入(Dependency Injection, DI)实现对象间的解耦,使得组件更加灵活。依赖注入主要有三种方式: 1. **基于设值注入(setter-based ...

    spring基础实例源码

    3. **Spring_0800_IOC_AutoWire**: 自动装配(AutoWiring)是Spring框架中的一个重要特性,它能自动将依赖的bean注入到需要它们的地方。本部分将展示不同类型的自动装配方式,包括byName、byType以及constructor-...

    spring的详细介绍

    Spring框架的核心特性是控制反转(Inversion of Control,简称IoC)和面向切面编程(Aspect-Oriented Programming,简称AOP),它能够与其他开源框架如Struts、Hibernate无缝集成。 1. Spring框架的主要目的是通过...

    Struts2整合Spring.docStruts2整合Spring.doc

    - **type 装配**:如果想根据 Action 类型来注入 Bean,可以在 Struts2 配置文件中指定 `struts.objectFactory.spring.autoWire` 为 `byType`,这样 Struts2 会根据 Action 类的类型去查找 Spring 中相同类型的 ...

    Spring教材

    Spring 2.0引入了简化XML配置的特性,例如使用`&lt;beans&gt;`标签的`default-autowire`属性,可以全局设置自动装配策略,减少重复的配置。 - **可扩展的XML编写** Spring 2.0增强了XML配置的扩展性,允许用户自定义...

    2022年Spring笔试试卷.doc

    Spring 是一个广泛使用的Java应用程序框架,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,提供了丰富的功能来简化企业级应用的开发。以下是对Spring特性及...

    spring常见问题

    Spring 的核心是 IOC(控制反转/依赖注入)实现松耦合,IOC 的核心是容器,容器的核心是 Java 反射机制。Spring 的 AOP 技术是把核心代码和辅助性代码分开--面向切面编程,使开发者更关注于业务逻辑的开发。 Spring...

    Spring考试.doc

    Spring框架是Java应用程序开发中的核心框架,它提供了强大的依赖注入(DI)和控制反转(IoC)功能,极大地简化了Java应用的构建和维护。以下是对Spring配置文件、IoC特性以及其他相关知识点的详细说明: 1. **...

    JAVA spring 系列案例50个和学习资料

    Spring系列第2篇:控制反转(IoC)与依赖注入(DI)。Spring系列第3篇:Spring容器基本使用及原理。Spring系列第4篇:xml中bean定义详解(-)Spring系列第5篇:创建bean实例这些方式你们都知道?Spring系列第6篇:玩转...

Global site tag (gtag.js) - Google Analytics