赞
踩
**
**:Spring是分层的 JavaSE/EE full-stack 的轻量级开源框架,以 IOC (Inverse of Control:控制反转)和 AOP (Aspect Oriented Programming:面向切面编程)为内核,使用基本的 JavaBean 来完成之前只可能由 EJB 来完成的工作。
非侵入式设计
方便解耦,简化开发
支持 AOP
支持声明式事务处理
方便程序测试
方便集成其它框架
降低 JavaEE API 的使用难度``
分层的框架,一系列功能分为20个模块
4+1:4个核心(beans、core、context、expression)+1个依赖(commons-logging-…jar)
提供接口和实现类
获得实现类的对象
把对象实例交由spring容器创建,需要时直接从spring容器中获得
public interface UserService {
public void addUser();
}
public class UserServiceImpl implements UserService {
@Override
public void addUser() {
System.out.println("add user");
}
}
<?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.3.xsd">
<!--
配置service
<bean> 配置需要创建的对象
id bean的唯一标识,用于之后从spring容器获得实例时使用
class 需要创建对象的全限定类名
-->
<bean id="userService" class="ee.a_ioc.UserServiceImpl"></bean>
</beans>
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestIoC {
public static void main(String[] args) {
//获得配置文件的路径
String xmlPath = "ee/a_ioc/applicationContext.xml";
//读取配置文件
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
//从spring容器获得对象,不需要new
UserService userService = (UserService) applicationContext.getBean("userService");
userService.addUser();
}
}
add user
2.2 DI(依赖注入)
简单来说就是一个对象需要使用另一个对象,通过setter方法将一个对象赋值给另一个对象。
创建userDao接口和实现类
创建userService接口和实现类
public interface UserDao {
public void addUser();
}
public class UserDaoImpl implements UserDao {
@Override
public void addUser() {
System.out.println("add userDao");
}
}
public interface UserService {
public void addUser();
}
public class UserServiceImpl implements UserService {
private UserDao userDao;
//通过setter方法获得UserDao对象
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void addUser() {
this.userDao.addUser();
System.out.println("add userService");
}
}
<?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.3.xsd"> <!-- 创建userDao实例 --> <bean id="userDao" class="ee.b_di.UserDaoImpl"></bean> <!-- 模拟spring的执行过程 创建service UserService userService = new UserServiceImpl(); 创建dao UserDao userDao = new UserDaoImpl(); 将dao设置给service userService.setUserDao(userDao); <property> name bean的属性名 ref 另一个bean的id引用 --> <bean id="userService" class="ee.b_di.UserServiceImpl"> <property name="userDao" ref="userDao"></property> </bean> </beans>
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDi {
public static void main(String[] args) {
String xmlPath = "ee/b_di/applicationContext.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
UserService userService = (UserService) applicationContext.getBean("userService");
userService.addUser();
}
}
add userDao
add userService
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。