Spring之自动装配,所谓自动装配,从字面解读,我想应该不难理解吧(当然不是诱导读者去咬文嚼字)。那究竟spring 自动装配有几种装配类型(我想大家最关注的应该是我们什么时候可以“偷懒”反之什么时候又不能,我想开发者目的应该也是为了简化程序员的工作)。那下面我们就介绍spring自动装配之不能偷懒——autowire="no",在接受之前我们先介绍自动装配总共包括几种装配方式(在其他装配方式中就不在介绍了)。

十多年的雨花网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整雨花建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“雨花网站设计”,“雨花网站推广”以来,每个客户项目都认真落实执行。
在介绍之前,先简单的提一个问题(自动装配总共有几种呢),答案(六种)也许与大家想的有点背离,但是我个人认为并不是不无道理的。
1. default-autowire="那五种形式": 这种是在全局(即在跟标签里)定义的,如果局部定义了autowire 可想而知,当然是按照局部的去进行自动装配了,如果没有定义就是按照跟标签的默认定义去进行装配,所以在这里把它单独拿出来作为一种
2. No:通过ref元素指定依赖
3. byName:在容器中寻找和需要自动装配的属性名相同的Bean(或ID),如果没有找到相符的Bean,该属性就没有被装配上。
4. byType:在容器中寻找一个与需要自动装配的属性类型相同的Bean;如果没有找到相符的Bean,该属性就没有被装配上,如果找到超过一个相符的Bean抛出异常org.springframework.beans.factory.UnsatisfiedDependencyException(特此声明测试针对spring2.5.6,在spring3.0中检查到多个Bean貌似没有异常并且在3.0中没有依赖检查这个属性)
5. Constructor:在容器中查找与需要自动装配的Bean的构造方法参数一致的一个或者过个Bean,如果从在不确定的Bean或构造方法,容器会抛出异常org.springframework.beans.factory.UnsatisfiedDependencyException.
6. Autodetect:首先我们尝试使用constructor来自动装配,然后使用byType方式。不确定行的处理与constuctor和byType方式一样
既然我们的题目叫不能偷懒,那当然我们就要介绍no了
Java代码
- //Longmanfei.xml
 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 - xsi:schemaLocation="http://www.springframework.org/schema/beans
 - http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 - class="cn.csdn.service.GreetingServiceImpl" autowire="no">
 - //GreetingDaoImpl
 - public class GreetingDaoImpl implements GreetingDao {
 - private String say;
 - public void say() {
 - System.out.println("我打了这个招呼"+say);
 - }
 - public void setSay(String say) {
 - this.say = say;
 - }
 - }
 - //GreetingServiceImpl
 - public class GreetingServiceImpl implements GreetingService{
 - private GreetingDaoImpl greetingDaoImpl;
 - public void say() {
 - greetingDaoImpl.say();
 - }
 - public void setGreetingDaoImpl(GreetingDaoImpl gdi) {
 - System.out.println("我调用了set方法");
 - this.greetingDaoImpl = gdi;
 - }
 - public GreetingServiceImpl() {
 - super();
 - System.out.println("我调用了空的构造器");
 - }
 - public GreetingServiceImpl(GreetingDaoImpl greetingDaoImpl) {
 - super();
 - System.out.println("我调用了有参的构造器");
 - this.greetingDaoImpl = greetingDaoImpl;
 - }
 - }
 - //junit测试
 - @Test
 - public void test1(){
 - /*加载spring容器可以解析多个配置文件采用数组方式传递*/
 - ApplicationContext
 - ac=new ClassPathXmlApplicationContext("classpath:Longmanfei.xml");
 - //直接转换成接口便于日后修改数据/*Ioc控制反转体现*/
 - GreetingService
 - gs=(GreetingService) ac.getBean("greetingServiceImpl");
 - gs.say();
 - }
 
【编辑推荐】
                网页标题:Spring自动装配之不能偷懒
                
                网页网址:http://www.csdahua.cn/qtweb/news22/5672.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网