目录
下面还是Spring先生们
1.注入集合
我们的di(依赖注入) 除了可以注入对象 还可以注入一些集合
我们新建一个UtilBean类 里面有好多集合
我们先注入一个List集合
在spring-beans.xml中添加上:
然后我们在测试类里测试一下,看看这个List有没有赋上值
赋上值了
然后再是map集合
再在测试类里测试一下
也赋上值了
再然后是Properties集合
再再测试一下
再再再然后是Set集合(Set集合的元素不能重复)
再再再测试一下
最后是数组
测试
终于没了
2.bean创建的三种方式:
1.通过构造方法创建(默认采用无参构造方法创建 也是我们刚才一直用的方法)
2.通过静态工厂创建
3.通过实例工厂创建
我们用一下第二个方法
首先我们新建一个宠物类 有名字和年龄两个属性
我们不直接new宠物对象 我们新建一个宠物工厂类 通过一个getPet()方法返回宠物对象
然后我们在spring-beans.xml中加上这个
再测试一下
试一试第三种实例工厂方法创建bean
我们再建一个学生类
还有一个学生工厂
在spring-beans.xml中添加上
测试结果;
3.命名空间
p命名空间:
用p命名空间能让我们的代码简单些
我们新建一个Person类
在spring-beans.xml里加上
xmlns:p="http://www.springframework.org/schema/p"
效果是一样的
我们还有一个c命名空间:
在Person类里添加有参和无参的构造方法
在spring-beans.xml里加上
xmlns:c="http://www.springframework.org/schema/c"
还有一个util命名空间
我们在spring-beans.xml中添加这个
我们用的是最开始的那个UtilBean
4.Bean的作用域:
singleton:每次获取的都是同一个bean
prototype:每次获取的都是不同的bean
这样就好了
5.Bean的自动配置
如果我们的Bean里面需要注入其他的Bean 那我们可以试试自动配置
1.ByName(通过名字)
2.ByType(通过类型)
如果我们通过ByName自动配置 我们需要在spring-beans.xml里加上
这是我们的用户类 里面有姓名 年龄 和角色 (角色是个对象) 需要提供get set方法
这是我们的角色类 里面有角色名称和角色代码
我们试一下这个byName自动配置 在spring-beans.xml里加上一名叫王铁树的突击手
发现即使没有给他指定角色 角色还是给他匹配上了
然后我们试试byType
都是一样的
6.Spring注解形式开发
Spring注解形式开发可以帮我们省去很多写配置文件的工夫
在spring-beans.xml中加上:
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
然后到我们需要作为Bean的类里面加上
测试一下
注解自动注入
使用注解形式同样可以实现上面的自动注入功能
我们试下这个 用一下上面的User类 和Role类