问题描述 有同事在开发新功能测试时,报了个错,大致就是,在使用 @Autowired 注入时,某个类有两个bean,一个叫a,一个叫b. 一般这种情况应该声明注入哪个bean,他没有声明,他不知道这个类有两个bean,他说他和别人写的一样,别的都不报错. OK,那来分析下吧. 问题分析 前提:@Autowired是根据类型(byType)进行自动装配的. 在默认情况下只使用 @Autowired 注解进行自动注入时,Spring 容器中匹配的候选 Bean 数目必须有且仅有一个. 使用@Auto…
自动装配: spring利用依赖注入和DI完成对IOC容器中各个组件的依赖关系赋值.自动装配的优点有: 自动装配可以大大地减少属性和构造器参数的指派. 自动装配也可以在解析对象时更新配置. 自动装配的方式有很多,其中包含spring的注解以及java自带的注解下面来看一看这些自动装配方式的区别 1.@Autowired(Spring规范) @Autowired 在Spring2.5引入,可以对成员变量.方法和构造函数进行标注,来完成自动装配的工作. 无需再通过传统的在bean的xml文件中进行b…
spring可以通过编写XML来配置Bean,也可以通过使用spring的注解来装配Bean. 1.自动装配与自动检测: 自动装配:让spring自动识别如何装配bean的依赖关系,减少对<property>元素的使用. 自动检测:让spring自动识别哪些类需要配置成spring Bean,减少对<bean>元素的使用. 2.自动装配的4种类型: byName:把与bean名字(ID)相同的其他Bean自动装配到Bean的对应属性中. byType:把与bean 类型相同的其他B…
1 环境版本说明 Jdk : 1.8 Maven : 3.5 IDEA : 专业版 2017.2 2 环境准备 2.1 Maven安装及其配置 2.2 Tomcat安装及其配置 3 详细步骤 3.1 根据模板创建maven工程 file -> new -> project -> maven -> webapp 技巧01:根据模板创建web工程时,请选择 maven-archetype-webapp 3.2 目录结构调整 项目创建成功后的目录结构如下: 跳坑01:新创建的项目中没有存…
Spring推荐面向接口编程,这样可以很好的解耦具体的实现类. CompactDisc.class 文件: public interface CompactDisc { void play(); } SgtPeppers.class 文件: import org.springframework.stereotype.Component; /* * 使用注解 @Component 生命该类为一个组件,并告知Spring要为这个类创建bean实例 * Spring 应用上下文中所有的 bean 都有…
首先用@Component注解类: package soundsystem: import org.springframework.stereotype.Component; @Component public class TestBean{ …… } @Component("bean id")可以为Bean命名相当于XML中的<bean name = "bean id",class="soundsystem.TestBean">&l…
1.生命周期 **Spring容器的 bean **的生命周期: 1.1 默认生命周期 1.1.1 生命周期 调用构造方法,创建实例对象: set方法,给实例对象赋值: init 初始化方法 初始化对象:(手写并配置到bean上init-method="") 使用容器中的bean对象: destroy 销毁方法 销毁对象 (手写并配置到bean上destroy-method="") 1.1.2 bean 实体类 Truck @Data @ToString publi…
Spring3系列8- Spring 自动装配 Bean 1.      Auto-Wiring ‘no’ 2.      Auto-Wiring ‘byName’ 3.      Auto-Wiring ‘byType 4.      Auto-Wiring ‘constructor’ 5.      Auto-Wiring ‘autodetect’ Spring Auto-Wiring Beans——Spring自动装配Bean 所谓自动装配,就是将一个Bean注入到其他Bean的Prope…
Spring入门(5)-自动装配Bean属性 本文介绍如何装配Bean属性. 0. 目录 ByName ByType constructor 默认自动装配 混合使用自动装配和显示装配 1. ByName 把与Bean的属性具有相同名字(或ID)的其他Bean自动装配到Bean对应的属性中.如果没有跟属性名称相匹配的Bean,则该属性不进行装配. package com.chzhao.springtest; public class PersonBll implements IPersonBll…
1.      Auto-Wiring ‘no’ 2.      Auto-Wiring ‘byName’ 3.      Auto-Wiring ‘byType 4.      Auto-Wiring ‘constructor’ 5.      Auto-Wiring ‘autodetect’ Spring Auto-Wiring Beans——Spring自动装配Bean 所谓自动装配,就是将一个Bean注入到其他Bean的Property中,类似于以下: <bean id="cust…