spring配置和依赖注入
spring的重点配置
标签 - id:容器bean实例的唯一标识,不允许重复
- class:实例化bean的全类名
- scope:作用范围,常用singleton(单个)和prototype(多个)
:属性注入 - name:属性名称
- value: 普通属性值
- ref:引用属性值
- 一些集合标签
- ,
- 属性注入方式
- set方法,通过set属性
- 构造器
标签
- import标签导入其他spring配置文件
dao层,接口定义一下
package com.code_g.dao.Impl;
import com.code_g.dao.UserDao;
import com.code_g.domain.User;
import java.util.List;
import java.util.Map;
import java.util.Properties;
public class UserDaoImpl implements UserDao {
// private String name;
// private int age;
// public UserDaoImpl(String name, int age) {
// this.name = name;
// this.age = age;
// }
private List<String> strList;
private Map<String, User> map;
private Properties properties;
public List<String> getStrList() {
return strList;
}
public void setStrList(List<String> strList) {
this.strList = strList;
}
public Map<String, User> getMap() {
return map;
}
public void setMap(Map<String, User> map) {
this.map = map;
}
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public UserDaoImpl() {
}
// public void setName(String name) {
// this.name = name;
// }
//
// public void setAge(int age) {
// this.age = age;
// }
@Override
public void save() {
// System.out.println(name + age);
System.out.println(strList);
System.out.println(map);
System.out.println(properties);
System.out.println("save message...");
}
public void init(){
System.out.println("初始化...");
}
public void destroy(){
System.out.println("销毁...");
}
}
service,接口定义一下
package com.code_g.service.Impl;
import com.code_g.dao.UserDao;
import com.code_g.service.UserService;
public class UserServiceImpl implements UserService {
private UserDao dao;
public void setDao(UserDao dao) {
this.dao = dao;
}
@Override
public void save() {
dao.save();
}
}
静态工厂
package com.code_g.factory;
import com.code_g.dao.Impl.UserDaoImpl;
import com.code_g.dao.UserDao;
public class StaticFactory {
public static UserDao getUserDaoImpl(){
return new UserDaoImpl();
}
}
实例化工厂
package com.code_g.factory;
import com.code_g.dao.Impl.UserDaoImpl;
import com.code_g.dao.UserDao;
public class DynamicFactory {
public UserDao getUserDaoImpl(){
return new UserDaoImpl();
}
}
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 配置init初始化方法和destory销毁方法-->
<!-- 无参构造的方法-->
<!-- <bean id="userDao" class="com.code_g.dao.Impl.UserDaoImpl" scope="prototype" init-method="init" destroy-method="destroy"/>-->
<!-- 使用静态工厂-->
<!-- <bean id="userDao" class="com.code_g.factory.StaticFactory" factory-method="getUserDaoImpl"/>-->
<!-- 使用实例化工厂-->
<!-- <bean id="factory" class="com.code_g.factory.DynamicFactory"/>-->
<!-- <bean id="userDao" factory-bean="factory" factory-method="getUserDaoImpl"/>-->
<!-- 引用依赖注入-->
<!-- <bean id="userDao" class="com.code_g.dao.Impl.UserDaoImpl"/>-->
<!-- <bean id="userService" class="com.code_g.service.Impl.UserServiceImpl">-->
<!-- <property name="dao" ref="userDao"/>-->
<!-- </bean>-->
<!-- 普通数据注入-->
<!-- <bean id="userDao" class="com.code_g.dao.Impl.UserDaoImpl">-->
<!-- set方法注入-->
<!-- <property name="name" value="zhangsan"/>-->
<!-- <property name="age" value="18"/>-->
<!-- 构造方法注入-->
<!-- <constructor-arg name="name" value="zhangsan"/>-->
<!-- <constructor-arg name="age" value="18"/>-->
<!-- </bean>-->
<!-- 集合注入-->
<bean id="userDao" class="com.code_g.dao.Impl.UserDaoImpl">
<!-- list-->
<property name="strList">
<list>
<value>123456</value>
<value>abcdef</value>
<value>poper</value>
</list>
</property>
<!-- map-->
<property name="map">
<map>
<entry key="user1" value-ref="user1"/>
<entry key="user2" value-ref="user2"/>
</map>
</property>
<!-- properties-->
<property name="properties">
<props>
<prop key="p1">111</prop>
<prop key="p2">222</prop>
<prop key="p3">333</prop>
</props>
</property>
</bean>
<bean id="user1" class="com.code_g.domain.User">
<property name="name" value="code_g"/>
<property name="age" value="18"/>
</bean>
<bean id="user2" class="com.code_g.domain.User">
<property name="name" value="chris"/>
<property name="age" value="22"/>
</bean>
<!-- 导入其他spring配置文件-->
<import resource="applicationContext-service.xml"/>
<import resource="applicationContext-dao.xml"/>
</beans>
自行书写测试方法