Spring环境配置及使用

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标签里面的可以不要
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200629183654220.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NwcmluZ0xzTA==,size_16,color_FFFFFF,t_70

<?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();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值