💦3、Bean的依赖注入数据类型
💨普通数据类型的注入
我用set方法的方式,讲解bean的依赖注入。继续在UserDaoImpl类中添加两个基本数据类型和它们的set方法
private String name; private Integer age; public void setName(String name) { this.name = name; } public void setAge(Integer age) { this.age = age; } public void show() { System.out.println("名字是" + name + "的年龄是" + age); }
修改xml配置文件的bean,name的属性值代表着set方法的名,value的属性值表示你想要填入的属性值
<bean id="userDao" class="com.sht.dao.impl.UserDaoImpl"> <property name="name" value="卷心菜"></property> <property name="age" value="20"></property> </bean>
写一个测试类:
public void test7(){ ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); UserDaoImpl contextBean = context.getBean(UserDaoImpl.class); contextBean.show(); }
运行结果:
💨集合数据类型的注入
🔥List类型的注入
继续在UserDaoImpl类中改动代码:
private List<String> stringList; public void setStringList(List<String> stringList) { this.stringList = stringList; } public void showStringList() { System.out.println(stringList); }
修改xml配置文件,注入基本数据类型就是两个关键字<list>和<value>
<bean id="userDao" class="com.sht.dao.impl.UserDaoImpl"> <property name="stringList"> <list> <value>111</value> <value>222</value> <value>333</value> </list> </property> </bean>
运行结果:
🔥List类型的注入
先创建一个User类,有对应的get和set方法,还有toString方法,方便测试使用
public class User { private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
修改xml配置文件的bean,可以看出,与之前不同的是,<list>中用的是<ref>标签,这个标签表示的是注入引用数据类型
<bean id="user01" class="com.sht.domain.User"> <property name="id" value="1"></property> <property name="username" value="卷心菜"></property> <property name="password" value="123456"></property> </bean> <bean id="user02" class="com.sht.domain.User"></bean> <bean id="userDao" class="com.sht.dao.impl.UserDaoImpl"> <property name="userList"> <list> <ref bean="user01"></ref> <ref bean="user02"></ref> </list> </property> </bean>
运行结果:
🔥Map<String,User> 类型的注入
继续在UserDaoImpl类中改动代码:
private Map<String, User> stringUserMap; public void setStringUserMap(Map<String, User> stringUserMap) { this.stringUserMap = stringUserMap; } public void showStringUserMap() { System.out.println(stringUserMap); }
修改xml配置文件,与之前不同的是,当使用的是map时,标签用的是<map>和标签<entry>,使用方法跟list标签差不多
<bean id="user01" class="com.sht.domain.User"> <property name="id" value="1"></property> <property name="username" value="卷心菜"></property> <property name="password" value="123456"></property> </bean> <bean id="userDao" class="com.sht.dao.impl.UserDaoImpl"> <property name="stringUserMap"> <map> <entry key="key1" value-ref="user01"></entry> </map> </property> </bean>
运行结果:
需要注意的是,我们在选择key属性时,会有一个如图所示的key-ref的提示,这代表着我们要用的key是一个引入数据类型,因为我用的key是String,所以选择key
当使用value-ref时,也会出现value的值,其用法跟上面一样
🔥Properties类型的注入
继续在UserDaoImpl类中改动代码:
private Properties properties; public void setProperties(Properties properties) { this.properties = properties; } public void showProperties(){ System.out.println(properties); }
修改xml配置文件,与之前的不同之处就是标签使用的是<props>和标签<prop>,使用的方法也是跟上面的方法类似
<bean id="userDao" class="com.sht.dao.impl.UserDaoImpl"> <property name="properties"> <props> <prop key="key01">value1</prop> <prop key="key02">value2</prop> </props> </property> </bean>
运行结果:
💦4、引入其他配置文件(分模块开发)
创建一个新的配置文件applicationContext1.xml,实际开发中,Spring的配置内容非常多,这就导致Spring配置很繁杂且体积很大,所以,可以将部分配置拆解到其他配置文件中,而在Spring主配置文件通过import标签进行加载
把applicationContext1.xml配置文件中的配置内容引入到applicationContext.xml的实现方式:
<import resource="applicationContext1.xml"></import>
📕总结
以上就是Spring配置文件的相关知识点,带大家来看看Spring的重点配置: