day01:基础(IoC.控制反转、DI依赖注入)、整合Junit、整合webe spring
day02:AOP切面编程、JdbcTemplate spring
day03:事务管理、SSH整合
Spring的核心是控制反转(IoC)和面向切面(AOP)
一.IOC
1.1 导入包(4+1)
四个核心(beans、core、context、expression)+一个依赖(commons-loggins…jar)
[如上资源包在百度云连接:] (https://pan.baidu.com/s/1ekuO9ljnyEiftlH5IpnK5A)
1.2 创建目标类(一个接口类)和实现类(该接口的实现类)
目标接口类:
package com.ioc;
public interface UserService {
public void addUser();
}
具体实现类:
package com.ioc;
public class UserServiceImpl implements UserService{
@Override
public void addUser() {
System.out.println("a_ioc add user");
}
}
1.3 配置文件:将实现类的全限定名称配置到xml文件中,以后依赖反转之后,需要直接就可以取到实例:
规则:
1.位置:任意,开发中一般在classpath下(也就是src下)
2.名称:任意,开发中常用applicationContext.xml
3.内容:添加schema约束
4.约束文件位置:spring-framework-3.2.0.RELEASE\docs\spring-framework-reference\html\ xsd-config.html(进去找出第二组代码就行)
beans.xml(这是我自己起的容易理解的名字,开发的时候一般是applicationContext.xml)
<?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">
<!-- 配置service
<bean>配置需要创建的对象
id :用于之后从spring容器中获得实例时使用
class:需要创建实例的全限定类全包名
-->
<bean id="userService" class="com.ioc.UserServiceImpl"></bean>
</beans>
1.4开始第一次测试(平时的和spring的区别):
package com.ioc;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestIoC {
@Test
public void demo01() {
//之前开发
UserService userService = new UserServiceImpl();
userService.addUser();
}
@Test
public void demo02() {
//从spring容器中获取
//1.获取容器
String xmlpath="com/ioc/beans.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlpath);
//2.获取内容,不需要自己去new 都是从容器中获取
//UserService userService = new UserServiceImpl();
UserService userservice = (UserService)applicationContext.getBean(UserService.class);
userservice.addUser();
}
}