集成Srping先要下载Spring的相关文件,可以下载Spring提供的框架包,名如spring-framework-2.0-with-dependencies.zip,其中包含所需求jar包、源码、样例、文档等。以下描述中SPRING_HOME为此包解压后的目录。
SPRING_HOME/dist/spring.jar
Spring的核心包。
SPRING_HOME/lib/jakarta-commons/commons-logging.jar
开源日志管理包,可以自动选择用是否用log4j。
SPRING_HOME/lib/log4j/log4j-1.2.14.jar
log4j核心包。
导入方法:右击项目,选properties,在打开的窗口中选中“Java Build Path”一项中的“Libraries标签”。“Add JARs”可以添加项目中的jar文件,“Add External JARs”可以添加系统中的jar文件。
主要为“spring配置文件”和“log4j配置文件”。
JAVA项目可以放到src目录下 ,WEB项目可以放到WEB-INF目录下。
可以从SPRING_HOME/samples中的示例项目中复制这两个文件,在WEB-INF目录下。
spring配置文件可以自己定,log4j配置文件一般为log4j.properties不要改动。
Spring配制文件在编辑时,可以有智能提示,这要通过配制编辑器的“XML Catalog”来实现。
SPRING_HOME/dist/resources/spring-beans-2.0.xsd即为配制bean时对应的智能提示文件。
配制步骤:
打开“Window\Preference\MyEclipse\Files and Editors\XML\XML Catalog”窗口。
选中“User Specified Entries”或“Plugin Specified Entries”点击添加按钮。
“Key ype”选URI,“Location”从文件系统选spring-beans-2.0.xsd。
重新选“Key ype”为“Schema location”。
把“Key”补全,后面加上“/spring-beans-2.0.xsd”。
最后“Key”应该类似“http://www.springframework.org/schema/beans/spring-beans-2.0.xsd”。
这样编辑Spring配制文件时就会有智能提示了。
package com.iteedu.service;
public interface IUserService {
public void save(String userName,String pwd);
}
package com.iteedu.service;
public interface IUserService {
public void save(String userName,String pwd);
}
package com.iteedu.dao;
public class UserDAO4OracleImpl implements IUserDAO {
@Override
public void save(String userName, String pwd) {
System.out.println("-----UserDAO4OracleImpl-----");
}
}
package com.iteedu.service;
public interface IUserService {
public void save(String userName,String pwd);
}
package com.iteedu.service;
import com.iteedu.dao.IUserDAO;
public class UserServiceImpl implements IUserService {
private IUserDAO userDAO;
public UserServiceImpl(){}
public UserServiceImpl(IUserDAO dao){
userDAO=dao;
}
@Override
public void save(String userName, String pwd) {
userDAO.save(userName, pwd);
}
public IUserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(IUserDAO userDAO) {
this.userDAO = userDAO;
}
}
package com.iteedu.client;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.iteedu.service.IUserService;
public class Client {
public static void main(String[] args) {
// IUserService service=new UserServiceImpl(new UserDAO4OracleImpl());
// IUserService service=new UserServiceImpl(new UserDAO4MysqlImpl());
// service.save("", "");
BeanFactory fac=new ClassPathXmlApplicationContext("applicationContext.xml");
IUserService us4Mysql=(IUserService) fac.getBean("userService4Mysql");
us4Mysql.save("", "");
IUserService us24Oracle=(IUserService) fac.getBean("userService4Oracle");
us24Oracle.save("", "");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<bean id="userDAO4Oracle" class="com.iteedu.dao.UserDAO4OracleImpl"/>
<bean id="userDAO4Mysql" class="com.iteedu.dao.UserDAO4MysqlImpl"/>
<bean id="userService4Mysql" class="com.iteedu.service.UserServiceImpl">
<constructor-arg ref="userDAO4Mysql"/>
</bean>
<bean id="userService4Oracle" class="com.iteedu.service.UserServiceImpl">
<property name="userDAO" ref="userDAO4Oracle"></property>
</bean>
</beans>
用setter方法注入bean时,要么没有构造函数,要有必需有一空参的构造函数。以上配制中UserServiceImpl别用构造函数注入的setter方法注入,所以必需有一个空参构造函数,要不然用setter方法注入时生成不了UserServiceImpl实例。