为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Spring入门篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Spring入门篇

moocer JAVA开发工程师
难度中级
时长 7小时 0分
  • 在Spring容器中配置了两个类型为B类型的Bean,当对A的b成员变量进行自动注入时,Spring容器将无法确定到底要用哪一个 Bean,因此异常发生了. Spring允许我们通过@Qualifier注解指定注入Bean的名称,这样歧义就消除了. 即: @Qualifier标注在成员变量中 public class A{ @Autowired @Qualifier("b1") private B b; } } @Qualifier标注在set()方法中 public class A{ private B b; @Autowired public setB(@Qualifier("b1")B b){ this.b=b; } } @Qualifier标注在构造方法方法中 public class A{ private B b; @Autowired public A(@Qualifier("b1")B b){ this.b=b; } } @Qualifier("b1")中的b1是Bean的名称,所以@Autowired和@Qualifier结合使用时,自动注入的策略就从byType转变成byName了. @Autowired可以对成员变量、方法以及构造函数进行标注. @Qualifier可以对成员变量、方法入参、构造函数入参进行标注. 正是由于注解对象的不同,所以Spring不将@Autowired和@Qualifier统一成一个注解类. @Qualifier只能和@Autowired结合使用,是对@Autowired有益的补充.一般来讲@Qualifier对方法签名中入参进行注解会降低代码的可读性,而对成员变量注解则相对好一些.
    查看全部
  • 如果Spring容器中拥有多个候选Bean,Spring容器在启动时也会抛出BeanCreationException异常. 即: public class A{ @Autowired private B b; } public class B{ String name; } 在xml配置文档中 <bean id="a" class="A" /> <!--移除a这个bean的属性注入配置id信息--> <bean id="b1" class="B"> <property name="name" value="admin"/> </bean> <bean id="b2" class="B"> <property name="name" value="admin"/> </bean>
    查看全部
  • 在默认情况下使用@Autowired注解进行自动注入时,Spring容器中匹配的候选Bean数目必须有且仅有一个.当找不到匹配的Bean时,Spring 容器将抛出BeanCreationException异常,并指出必须至少拥有一个匹配的Bean. 即: public class A{ @Autowired private B b; } public class B{ String name; } 在xml配置文档中 <bean id="a" class="A" /> <!--移除a这个bean的属性注入配置id信息--> <!-- <bean id="b" class="B"> <property name="name" value="admin"/> </bean> --> Spring容器加载时就会抛出异常. 当不能确定Spring容器中一定拥有某个类的Bean时,可以在需要自动注入该类Bean的地方使用@Autowired(required=false).在找不到匹配的Bean 时也不报错.一般情况下,使用@Autowired的地方都是需要注入Bean的,使用了自动注入而又允许不注入的情况一般仅会在开发期或测试期碰到(如为了快速启动Spring容器,仅引入一些模块的Spring配置文件),所以@Autowired(required = false)会很少用到. 即: public class A{ @Autowired(required="false") private B b; } public class B{ String name; } 一般使用到自动注入都是在类中存在别的类的成员变量,类似String以及基本类型就直接在xml配置文档中配置即可.
    查看全部
  • 用注解进行Bean的定义和依赖注入. Spring2.5引入了@Autowired注解,它可以对类的成员变量、方法及构造函数进行标注,完成自动装配的工作. 要让@Autowired起作用必须事先在Spring容器中声明 <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> 即通过注解配置也需要创建一个xml配置文件. @Autowired标注在成员变量上: public class A{ @Autowired private B b; set()方法 } public class B{ String name; } 在xml配置文档中 <bean id="a" class="A" /> <!--移除a这个bean的属性注入配置id信息--> <bean id="b" class="B"> <property name="name" value="admin"/> </bean> 当IOC容器启动时,AutowiredAnnotationBeanPostProcessor将扫描IOC容器中所有的Bean,当发现Bean的实体类中拥有@Autowired注解时就找到和其匹配(默认按类型匹配)的Bean,并注入到对应的属性中去. 按照上面的配置,Spring将直接采用Java反射机制对A中的b成员变量进行自动注入.所以对成员变量使用@Autowired后,可将A与B中的set()方法去掉. @Autowired标注在set()方法上: public class A{ private B b; @Autowired setB(B b){ this.b=b; } } 这时@Autowired将查找被标注的方法的入参类型的Bean,并调用方法set()方法自动注入这些Bean. @Autowired标注在构造函数上: public class A{ private B b; @Autowired public A(B b){ this.b=b; } } 由于A(B b)构造函数有B这个类型的入参,@Autowired将寻找和它类型匹配的Bean,将它们作为A(B b)的入参来创建a这个Bean
    查看全部
  • IOC容器管理基于注解的实现 注解配置相对于XML配置具有很多的优势: 1.它可以充分利用Java的反射机制获取类结构信息.这些信息可以有效减少配置的工作. 2.注解和Java代码位于一个文件中,而XML配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和Java代码放在一起,有助于增强程序的内聚性.而采用独立的XML配置文件,程序员在编写一个功能时,往往需要在程序文件和配置文件中不停切换,这种思维上的不连贯会降低开发效率. 很多情况下,注解配置比XML配置更受欢迎,可以使用注解配置完成大部分XML配置的功能.
    查看全部
  • resources 针对资源文件的统一接口
    查看全部
  • bean的自动装配 autowiring - byname
    查看全部
  • bean的自动装配
    查看全部
  • 提供一个类来代表 AspectBiz
    查看全部
    0 采集 收起 来源:Introductions应用

    2016-02-28

  • Bean容器初始化
    查看全部
    0 采集 收起 来源:IOC及Bean容器

    2016-02-28

  • X_Aware 接口,相应的资源全县和操作
    查看全部
  • 全局配置 初始化销毁方法
    查看全部
  • 初始化,在 代码中定义方法,init(), 然后在 <bean init-method="init"/>
    查看全部
  • Bean 的生命周期,定义/初识/使用/销毁
    查看全部
  • 官方英文解释,注意 singleton 是 默认模式
    查看全部

举报

0/150
提交
取消
课程须知
Java的高级课程,适合对Java基础知识应用自如,并熟悉MVC架构的小伙伴们。如果想成为一名Java工程师,这门课程是一定要学哒。
老师告诉你能学到什么?
掌握依赖注入、IOC和AOP的概念,并能进行简单应用。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!