Spring环境配置
温馨提示:如果感觉问题不大,可以直接看后面的总结。
一、进入Spring官网下载Spring开发包:https://spring.io/
但是很麻烦,这个是我用的
链接:https://pan.baidu.com/s/1Y3vz2U3sgsKSI83DmEFPLg
提取码:h6e3
两个都要下,先解4.1.7这个Spring的开发包
二、解压,然后你可以查看它的相关API文档啊,源码之类的,比如我查看的是PDF文档
你也可以查看,HTML或者
三,进入书签模式,找到 Part I,overview of spring framework(第一部分,Spring框架的概述),进入里面的G etting started with Spring(Spring入门)向下滑,可以看到 Runtime,Spring是怎么运行的。找到我们需要的jar包
四、在压缩好的文件夹下的libs路径下找E:\spring-framework-4.1.7.RELEASE\libs
在项目里面新建一个文件夹lib并把刚才找到的包放进去,导包
五、在项目src下新建一个xml文件,applicationContext.xml在说明文档中找到,applicationContext.xml的配置。bean标签里面的可以不要
<?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-4.1.xsd">
</beans>
如果出现报错改一下版本,那个都行
六、我们说过applicationContext是帮助我们来new对象的,控制对象的生命周期。下面我们来说怎么使用:
eg:一个用户突然想把某个方法改成另外一一个方法
我们可以在applicationContext中配置它的dao和service来控制它。
<?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-4.1.xsd">
<!--IUserDao userDao = new UserDaoImpl(); -->
<bean id="userDao" class="spring.UserDaoImpl"></bean>
<bean id="userDao2" class="spring.UserDaoImpl_2"></bean>
<!-- UserService userService = new UserService(userDao); -->
<bean id="userService" class="spring.UserService">
<constructor-arg ref="userDao2"></constructor-arg>
</bean>
</beans>
然后我们进行测试:
怎么测试?我这里面创建了一个IUserDao接口这里面有一个selectUser()方法,分别让UserDaoImpl与UserDaoimpl_2继承它,然后在它们重写的方法里面分别写一句输出的话,然后在写一个Uservice分别去实现Dao里面的方法
Uservice:
package spring;
public class UserService {
private IUserDao userDao;
public UserService(IUserDao userDao)
{
this.userDao = userDao;
}
public void findUsers()
{
userDao.selectUser();
}
}
test:
public class Test {
public static void main(String[] args) {
//加载并解析applicationContext.xml返回一个beanfactoryBean工厂
BeanFactory factory= new ClassPathXmlApplicationContext("applicationContext.xml");
//获取工厂中的service对象
UserService userService=(UserService)factory.getBean("userService");
//调用方法
userService.findUsers();
/*
通过Spring我们以后修改的时候,可以通过applicationContext.xml来修改
只用重新启动服务器,不用再一次编译
*/
}
结果为:
解决办法:解压第一个压缩包spring-framework-4.0.0-dependencies,
路径为:
E:\spring-framework-4.0.0-dependencies\files-2.1\commons-logging\commons-logging\1.1.3\f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f
导入包后面就ok了。
结果为:
最后我们来总结一下:
1.完成DAO、Service接口或类的定义
2.在项目根下新建一个lib文件夹,导入核心的jar包
spring-beans.jar
spring-context.jar
spring-core.jar
spring-expression.jar
运行过程中,抛出异常:java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
需要导入【依赖包】:
commons-logging-1.1.3.jar
3.在src下新建是spring核心配置文件applicationContext.xml,并且完成DAO、Service对象的管理
<?xml version="1.0" encoding="UTF-8"?>
<!--IUserDao userDao = new UserDaoImpl(); -->
<bean id="userDao" class="spring.UserDaoImpl"></bean>
<bean id="userDao2" class="spring.UserDaoImpl_2"></bean>
<!-- UserService userService = new UserService(userDao); -->
<bean id="userService" class="spring.UserService">
<constructor-arg ref="userDao2"></constructor-arg>
</bean>
</beans>
4.测试
//1.加载并且解析applicationContext.xml
BeanFactory factory = new ClassPathXmlApplicationContext(“applicationContext.xml”);
//2.获取工厂中的service对象了
UserService userService = (UserService)factory.getBean("userService");
//3.调用方法
userService.findUsers();