-
上面我们学习了spring的项目的简单搭建,今天我们就一起学习spring的配置信息
-
简单创建一个要进行调用的类,配置到文件中,在测试中进行调用
package com.wang.dao.impl;
import com.wang.dao.UserDao;
public class UserDaoImpl implements UserDao {
public void save() {
System.out.println("save 方法已经创建");
}
}
- 测试调用,打印上面的字符串
@Test
public void test1() {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) app.getBean("userDao");
userDao.save();
}
- 静态工厂调用,新建静态调用类
package com.wang.factory;
import com.wang.dao.UserDao;
import com.wang.dao.impl.UserDaoImpl;
public class StaticFactory {
public static UserDao getUserDao(){
return new UserDaoImpl();
}
}
- 配置
<bean id="userDao" class="com.wang.factory.StaticFactory" factory-method="getUserDao"></bean>
- 工厂实体类
package com.wang.factory;
import com.wang.dao.UserDao;
import com.wang.dao.impl.UserDaoImpl;
public class DynamicFactory {
public UserDao getUserDao() {
return new UserDaoImpl();
}
}
- 配置
<bean id="factory" class="com.wang.factory.DynamicFactory"></bean>
<bean id="userDao" factory-bean="factory" factory-method="getUserDao"></bean>
- 成员变量赋值配置
package com.wang.dao.impl;
import com.wang.dao.UserDao;
public class UserDaoImpl implements UserDao {
public void setUsername(String username) {
this.username = username;
}
public void setAge(int age) {
this.age = age;
}
private String username;
private int age;
public void save() {
// System.out.println("save 方法已经创建");
System.out.println(username + "-" + age);
}
}
- 配置信息
<bean id="userDao" class="com.wang.dao.impl.UserDaoImpl">
<property name="username" value="wangwu"></property>
<property name="age" value="20"></property>
</bean>
- 成员注入类
package com.wang.service.impl;
import com.wang.dao.UserDao;
import com.wang.service.UserService;
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void save() {
userDao.save();
}
}
- 配置
<bean id="userDao" class="com.wang.dao.impl.UserDaoImpl"></bean>
<bean id="userService" class="com.wang.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
- 测试
public void test2() {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = (UserService) app.getBean("userService");
userService.save();
}
- 构造注入
package com.wang.service.impl;
import com.wang.dao.UserDao;
import com.wang.service.UserService;
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
public UserServiceImpl() {
}
public void save() {
userDao.save();
}
}
- 配置
<bean id="userDao" class="com.wang.dao.impl.UserDaoImpl"></bean>
<bean id="userService" class="com.wang.service.impl.UserServiceImpl">
<constructor-arg name="userDao" ref="userDao"></constructor-arg>
</bean>
- 多类型配置
package com.wang.dao.impl;
import com.wang.dao.UserDao;
import com.wang.domain.User;
import java.util.List;
import java.util.Map;
import java.util.Properties;
public class UserDaoImpl implements UserDao {
private List<String> strList;
private Map<String, User> userMap;
private Properties properties;
private String username;
public void setStrList(List<String> strList) {
this.strList = strList;
}
public void setUserMap(Map<String, User> userMap) {
this.userMap = userMap;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
private int age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
/*public UserDaoImpl() {
System.out.println("创建");
}
public void init(){
System.out.println("初始化方法。。。");
}
public void destory(){
System.out.println("销毁方法。。。");
}*/
public void save() {
// System.out.println(username + "======" + age);
System.out.println(strList);
System.out.println(userMap);
System.out.println(properties);
System.out.println("save running.....");
}
}
- 配置
<bean id="user1" class="com.wang.domain.User">
<property name="name" value="zhangsan"></property>
<property name="addr" value="beijiing"></property>
</bean>
<bean id="user2" class="com.wang.domain.User">
<property name="name" value="wangwu"></property>
<property name="addr" value="wuhan"></property>
</bean>
<bean id="userDao" class="com.wang.dao.impl.UserDaoImpl" >
<property name="strList" >
<list>
<value>dsadd</value>
<value>dsf</value>
<value>dsafdsfdd</value>
<value>dsfdsfdadd</value>
</list>
</property>
<property name="userMap">
<map>
<entry key="user1" value-ref="user1"></entry>
<entry key="user1" value-ref="user2"></entry>
</map>
</property>
<property name="properties">
<props>
<prop key="p1">ppp1</prop>
<prop key="p2">ppp2</prop>
<prop key="p3">ppp3</prop>
</props>
</property>
</bean>