美文网首页Java联盟
Java框架spring(二)—bean的属性注入

Java框架spring(二)—bean的属性注入

作者: Java联盟 | 来源:发表于2017-12-07 22:30 被阅读0次

    好的各位小伙伴

    今天我们继续来搞 spring 

    今天我们来分享的就是

    常见的 POJO 类属性的注入

    我们先来创建一个 user 类 ,在 user 类中定义多种类型的属性以及 get()和 set() 方法。

    我们可以看到在 user 类中的属性有多种类型,String、int、list... 现在我们来写配置文件,向这些属性中插入数据。

    写一个 JUnit 测试类来测试一下

    这样就把我们在配置文件中设置的属性注入到我们的类中了,那么这个小知识点应该没什么问题了吧!

    bean 中的 scope 属性

    在 bean 中有的 scope 属性,表示 bean 对象的作用域  scope = "singleton/prototype"


    singleton  仅初始化一次,创建一个实例,例:  A a = new A();

    prototype 每一次对bean的访问都会重新创建一个新的实例。例:A a = new A(); A b = new A();

    我们来测试一下!

    首先把 bean 的属性设置为 scope="singleton" 

    看一下我们的测试结果


    我们现在修改一下属性的配置 scope="prototype"

    看一下我们的测试结果

    bean 的延迟加载

    在 bean 标签里面 写入 lazy-init = "false" /lazy-init="true" (默认是false)延迟的意思就是你要用的时候我在给你实例化!

    我们来测试一下!

    我们的测试思路是在配置文件的时候故意写错,如果不是延迟加载就会直接报错并且不会输出语句,是延迟加载的话就会先输出在报错。好的我们开始

    设置 lazy-init = "false" 

    我们是没有这个文件的,所以这个路径是错的!

    设置 lazy-init="true" 

    注:在beans的头文件里面 写入  default-lazy-init="true" 代表整个配置文件的对象都是延迟加载呦!

    自动装配


    spring 还可以自动的向 bean 中注入依赖  --自动装配 (autowire)

    我们来建一个例子

    其实这里面的代码和我们昨天的一样就是改了一下名字,好吧!我们还是来粘一下代码

    主要的就是这三个!

    现在来设置配置文件

    自动装配主要有两种方式

    byName 依赖的 bean 名称需要与类中引用的名称一致  ,就会匹配依赖关系,我们在类中的引用的名称是 userAutowireDao 所以就会去匹配我们的 userAutowireDao 方法

    那么输出的结果就是通过jdbc验证

    运行一下

     byType 通过定义的依赖bean的类型来进行匹配

    我们这样配置,运行时会报错

    因为我们下面的两个实现方法的类型是一样的,这个时候就引入了另一个属性

    这个属性的意思是:放弃自动匹配的候选者资格,这样在程序运行的时候我们就会跳过这个选项,直接去找到下面的other方法来实现

    总结:建议不要在配置文件里面用自动装配,虽然可以减少配置文件,但是不利于维护

    好了!

    那么今天的分享就到这里了

    再见了

    相关文章

      网友评论

        本文标题:Java框架spring(二)—bean的属性注入

        本文链接:https://www.haomeiwen.com/subject/hbfsixtx.html