解决spring配置中的bean类型的问题:BeanNotOfRequiredTypeException这个问题出现的原因:一般在使用annotation的方式注入spring的bean 出现的,具体是由于spring采用代理的机制导致的,看使用的代码: Java代码 1. 使用类注入: @Resource(name = "aisleService") private AisleService aisleService; 2. 使用接口注入: @Resource(name = &quo…
7.5 Spring容器中的Bean 7.5.1 Bean的基本定义和Bean别名 <beans.../>元素是Spring配置文件的根元素,该元素可以指定如下属性: default-lazy-init : 指定该<beans.../> 元素下配置的所有Bean默认的延迟初始化行为. default-merge : 指定该<beans.../> 元素下配置的所有Bean默认的merge行为. default-autowire : 指定该<beans.../>…
在BeanFactory的配置中,<bean>是我们最常见的配置项,它有两个最常见的属性,即id和name,最近研究了一下,发现这两个属性还挺好玩的,特整理出来和大家一起分享. 1.id属性命名必须满足XML的命名规范,因为id其实是XML中就做了限定的.总结起来就相当于一个Java变量的命名:不能以数字,符号打头,不能有空格,如123,?ad,"ab "等都是不规范的,Spring在初始化时就会报错,诸如: 代码 org.xml.sax.SAXParseException…
引言:我们从几个方面有逻辑的讲述如何从Spring容器中获取Bean.(新手勿喷) 1.我们的目的是什么? 2.方法是什么(可变的细节)? 3.方法的原理是什么(不变的本质)? 1.我们的目的是什么? 从Spring容器中获取Bean.这里是指配置文件中注册的bean,比如dubbo类型的bean.另外一大类是通过注解获取的Bean. 2. 方法是什么? ApplicationContext的主要实现类是ClassPathXmlApplicationContext和FileSystemXmlAp…
7.4 使用 Spring 容器 Spring 有两个核心接口:BeanFactory 和 ApplicationContext,其中ApplicationContext 是 BeanFactory 的子接口.它们都可代表 Spring 容器,Spring 容器是生成 Bean 实例的工厂,并管理容器中的Bean. Java 程序面向接口编程,无须关心 Bean 实例的实现类:但 Spring 容器负责创建 Bean 实例,因此必须精确知道每个 Bean 实例的实现类,故Spring 配置文件必…
写在前面 当bean是单实例,并且没有设置懒加载时,Spring容器启动时,就会实例化bean,并将bean注册到IOC容器中,以后每次从IOC容器中获取bean时,直接返回IOC容器中的bean,不再创建新的bean. 如果bean是单实例,并且使用@Lazy注解设置了懒加载,则Spring容器启动时,不会实例化bean,也不会将bean注册到IOC容器中,只有第一次获取bean的时候,才会实例化bean,并且将bean注册到IOC容器中. 如果bean是多实例,则Spring容器启动时,不会…
写在前面 在前面的文章中,我们知道可以通过多种方式向Spring容器中注册bean.可以使用@Configuration结合@Bean向Spring容器中注册bean:可以按照条件向Spring容器中注册bean:可以使用@Import向容器中快速导入bean对象:可以在@Import中使用ImportBeanDefinitionRegistrar向容器中注册bean. 项目工程源码已经提交到GitHub:https://github.com/sunshinelyz/spring-annotat…
Spring配置中的"classpath:"与"classpath*:"的区别研究(转)   概念解释及使用场景: classpath是指WEB-INF文件夹下的classes目录. 通常我们一般使用这种写法实在web.xml中,比如spring加载bean的上下文时,如下: <!--系统自动加载文件--> <!--这里使用的是classpath*:的形式--> <context-param> <param-name>…
[十]SpringBoot 之 普通类获取Spring容器中的bean   我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用spring提供的其他对象或者说有一些不需要交给spring管理,但是需要用到spring里的一些对象.如果这是spring框架的独立应用程序,我们通过 ApplicationContext ac = new FileSys…
Spring 配置中的 ${}     <!-- ============ GENERAL DEFINITIONS========== --> <!-- Configurer that replaces ${...} placeholders with values from a properties file --> <!-- (in this case, JDBC-related settings for the dataSource definition below)…