-
resourceloader的介绍
查看全部 -
Autowired注解
查看全部 -
Required注解
查看全部 -
Bean的自动装配(Autowiring) 1.No:不做任何操作 2.byname:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配 3.byType:如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配;如果存在多个该类型的bean,那么抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生 4.Constructor:与byType方式类似,不同之处在于它应用于构造器参数。如果容器中没有找到与构造器参数类型一致的bean,那么抛出异常 Bean的自动装配:在beans标签配置属性 default-autowire="no/byName/byType/constructor" 作用为:省去了在Spring的xml中配置property标签和constructor-arg标签,只需要配置bean标签即可 PS:byName和byType为设值注入,constructor为构造注入; byName要求bean标签的id属性需要和成员变量的名称一致, byType和constructor则跟id无关
查看全部 -
springframework查看全部
-
1.ApplicationContextAware 1.1 接口方法:setApplicationContext 1.2 作用:通常用来获取上下文对象,声明全局变量后在方法中对变量进行初始化并供其他方法调用 1.3 实现过程:创建一个类并实现ApplicationContextAware接口,重写接口方法public void setApplicationContext(ApplicationContext applicationContext);在xml文件中配置该类;当spring加载该配置文件时即调用接口方法 2.BeanNameAware 2.1 接口方法:setBeanName 2.2 作用:获取声明的类名,声明全局变量后在方法中对变量进行初始化并供其他方法调用 2.3 实现过程:创建一个类并实现BeanNameAware接口,重写接口方法public void setBeanName(String name);在xml文件中配置该类;当spring加载该配置文件时即调用接口方法 综合测试: 1.创建一个类,同时实现ApplicationContextAware和BeanNameAware接口并重写其方法。声明一个全局变量beanName并在方法setBeanName对其初始化; 2.在setApplicationContext方法中使用参数applicationContext的getBean方法(方法参数为成员变量beanName,即this.beanName)获取bean的名称并打印其hashcode 3.将1中创建的类配置到xml文件中 4.创建单元测试,读取xml文件并执行测试方法,通过上下文信息直接获取bean并打印出其hashcode 结论:在加载xml文件时即加载其配置的bean并调用其中的方法,最后的hashcode相同,说明获取的bean是同一个。
查看全部 -
#spring——bean的生命周期# 生命周期:定义,初始化,使用,销毁 一.初始化: 方法1.实现org.springframework.beans.foctory.InitializingBean接口,覆盖afterPropertiesSet方法。系统会自动查找afterPropertiesSet方法,执行其中的初始化操作 方法2.配置init-method 例如设置bean中init-method="init"那么在初始化过程中就会调用相应class指定类的init()方法进行初始化工作 二 销毁(与初始化类似) 方法1.实现org.springframework.beans.foctory.DisposableBean接口,覆盖destory方法。 方法2.配置destory-method 三 配置全局初始化、销毁方法(属于默认配置,参考截图) 注意: 当三种方式同时使用时,全局(默认的)初始化销毁方法会被覆盖。 另外实现接口的初始化/销毁方式会先于配置文件中的初始化/销毁方式执行。 即使没有以上三种初始化方法也是可以编译执行的
查看全部 -
#spring——bean的配置及作用域# 1.bean的常用配置项:(理论上只有class是必须的) id:唯一标识 class:具体是哪一个类 scope:范围 constructor arguments:构造器的参数 properties:属性 Autowiring mode:自动装配模式 lazy-initialization mode:懒加载模式 initialization/destruction method:初始化/销毁的方法 2.bean的作用域 singletion 单例 bean容器只有唯一的对象(默认模式) prototype 每次请求会创建新的实例,destory方式不生效 request 对于request创建新的实例,只在当前request内有效 session 对于session创建新的实例,只在当前session内有效 global session 基于portlet(例如单点登录的范围)的web中有效,如果在web中同session bean的作用域:
查看全部 -
Spring IOC是一种设计模式,使对象不用显示的创建依赖对象,而是将对象创建的过程交给Spring的IOC容器去管理,通过依赖注入的方式,来实现IOC; 依赖注入的方式有两种: 1、设值注入:即通过XML中配置bean的依赖类,通过层级property属性,来配置依赖关系,然后Spring通过setter方法,来实现依赖类的注入; 2、构造器注入:方法同设值注入,不过具体实现的方法是通过显示的创造一个构造方法,构造方法的参数名称要与XML中配置的name名称一致,XML配置的标签为constructor-arg
查看全部 -
首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所要,然后嘿嘿……这个过程是复杂深奥的,我们必须自己设计和面对每个环节。传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。 那么IoC是如何做的呢?有点像通过婚介找女朋友,在我和女朋友之间引入了一个第三者:婚姻介绍所。婚介管理了很多男男女女的资料,我可以向婚介提出一个列表,告诉它我想找个什么样的女朋友,比如长得像李嘉欣,身材像林熙雷,唱歌像周杰伦,速度像卡洛斯,技术像齐达内之类的,然后婚介就会按照我们的要求,提供一个mm,我们只需要去和她谈恋爱、结婚就行了。简单明了,如果婚介给我们的人选不符合要求,我们就会抛出异常。整个过程不再由我自己控制,而是有婚介这样一个类似容器的机构来控制。Spring所倡导的开发方式就是如此,所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由 spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。如果你还不明白的话,我决定放弃。
查看全部 -
@Resource(这个注解属于J2EE的),默认安照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取参数名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
查看全部 -
public double number(int a) {
return a;
}
返回值类型指的是public上的double类型,而不是a的类型。
查看全部 -
@Autowired注解
查看全部 -
Autowired 自动装配注解 可以用在set方法上,亦可以用在成员变量或者构造器; 每个类只能有一个构造器被标记为required=true 在Service中使用DAO对象的时候,加上Autowired注解,不需要在xml中配置,也不需要setter方法
查看全部 -
classpath扫描与组件管理
查看全部
举报