这篇文章主要介绍了浅谈Spring Bean的基本配置,文中有非常详细的代码示例,对正在学习java Spring的小伙伴们有非常好的帮助,需要的朋友可以参考下
目录
一、Spring中set方法的注入
1.1 set的两种注入方法
1.2 type属性
1.3 Date()类型的注入
二、Spring_scop
三、自动注入(autowire)
四、构造注入
五、Array注入(数组注入)
六、List注入
七、Set注入
八、Map注入
九、Property注入
一、Spring中set方法的注入
User实体
@Data //lombok提供的有参构造 @AllArgsConstructor lombok提供的无参构造 @NoArgsConstructor public class User { private int id; private String name; private int age; private String sex; private String birthday; }
beanfactory.xml
张三
1.1 set的两种注入方法
我们在xml文件中注入的时候我们可以写成这样:
也可以写成这样:
1806
这没什么区别的,不过我们一般使用前者,毕竟看起来代码少,也方便
代码测试:
@Test public void test3(){ //创建工厂 beanfactory beanfactory = new ClasspathXmlApplicationContext("beanfactory.xml"); //从工厂中拿配置好的UserServlet实例 User user = beanfactory.getBean(User.class); System.out.println(user); }
1.2 type属性
有事我们在注入的时候有时候会看到type:
1806
这相当于一个类型声明,声明value是什么类型的数据,然后调用类型转换器将我们写入的字符串转换为我们我们所定义的类型。但其实这是一个多余的,当我们注入的时候,会通过User对象进行反射从而知道是什么类型。
1.3 Date()类型的注入
但有一些特殊的类型是Spring所没有的,需要我们自己去定义,就比如Date类型,如果我们这样写就会报错
private Date birthday;
Spring是没有这个的转换器,将字符串转换为Date类型,所以其实我们可以直接用String来写,或者new Date(),但是后者约束性太大,不能得到我们想要的日期,还是前者方便。
二、Spring_scop
当我们在测试案例中创建两个User实例时,进行检查发现,这两个实例其实是一个
beanfactory beanfactory = new ClasspathXmlApplicationContext("beanfactory.xml"); //从工厂中拿配置好的UserServlet实例 User user = beanfactory.getBean(User.class); User user1 = beanfactory.getBean(User.class); System.out.println(user == user1);
2.prototype(多例模式)
我们在进行测试答案为false
三、自动注入(autowire)
我们在userServlet中注入userDao
但其实我们没必要这样写,Bean中you自动注入的属性autowire,他有两个值:
1.byName,根据名字注入,即id=“userDao”
2.byType,根据类型注入,类型注入比较有局限性,同种类型只能注入一个,多了会报不是唯一错误
四、构造注入
构造注入和set注入的不同点就是,加入元素的顺序必须和你所创建的实体(User)类相同,若不同,则会报错,由于反射过来的类型和转换器转换的类型不同,这时候我们需要加入另一个属性index
那什么时候使用构造注入呢?当我们自己定义一个构造函数的时候使用构造注入
public class User { private int id; private String name; private int age; private String sex; private String birthday; //自定义构造函数 public User(int id , String name){ this.id = id; this.name = name; } }
这个时候就不能使用set注入,他会报错,即使你写出全参构造函数也不行
五、Array注入(数组注入)
private String[] photos;
1.jpg2.jpg3.jpg
六、List注入
private List list;
abc
七、Set注入
private Set set;
abc
八、Map注入
private Map map
//第一种写法 //第二种写法 b
九、Property注入
private Properties prop;
4234123154645642659846
到此这篇关于浅谈Spring Bean的基本配置的文章就介绍到这了,更多相关Spring Bean的配置内容请搜索编程之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程之家!