- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Spring知识点
Spring
Spring 业务逻辑组件框架
其实程序最难维护的就是应对将来变化的部分
IOC容器 – 使组件关系变得松散
AOP框架 – 使应用易于扩展,最小的代价去应付将来的变化
通用支持 – 提供事务,安全,缓存等
Spring 开发包
Dist/spring.jar 核心的Jar包,轻量级
Dist/modules/spring-*.jar 划分模块的Jar包
Dist/sources/dtd xsd
Docs/reference
Docs/api
IOC容器
IOC-----Inversion Of Contorl 控制反转
过去是通过Service方法自己的组件里面,通过if···else··去寻找各自实例化各自的对象(组件)
现在变成用配置文件(容器)去控制,各自的对象(组件),实例化对象。
因此:组件的实例化和组件间的关系都被容器控制而非组件自己。
DI------- Dependency Injection 依赖注入
组件需要什么样的依赖组件,该组件就通过外部容器注入进来
最基本的HelloWorld
创建ItemDao和ItemDaoImpl,OrderDao和OrderDaoImpl实现接口和类的相关方法:
public interface ItemDao {
void update();
}
public interface OrderDao {
void save();
}
在StoreServiceImpl的类里面调用这两个实现类ItemDao和OrderDao
public class StoreServiceImpl implements StoreService {
private OrderDao orderDao;
private ItemDao itemDao;
@Override
public void sumbitOrder() {
orderDao.save();
System.out.println(方法被调用);
itemDao.update();
}
//省略ItemDao和OrderDao的getXXX()和setXXX()方法
请问:ItemDao和OrderDao这两个接口是如何实例化的呢?这时就需要用到我们的Spring框架去创建这个、两个对象。需要导入Spring的jar包。
主要的是需要我们按照一个什么样的规则去创建这两个对象?所以Spring给我们提供了一个配置文件:applicationContext.xml去规则我们创建的对象,也就是组件(Bean)
beans
xmlns=/schema/beans
xmlns:xsi=/2001/XMLSchema-instance
xmlns:p=/schema/p
xsi:schemaLocation=/schema/beans /schema/beans/spring-beans-3.0.xsd
bean id=oDao class=first.dao.OrderDaoImpl/
bean id=iDao class=first.dao.ItemDaoImpl/
bean id=serviceStore class=first.service.StoreServiceImpl
property name=orderDao ref=oDao /!-- 引用上面的组件 --
property name=itemDao ref=iDao /
/bean
/beans
编写一个测试的方法去读取配置文件,并创建对象:
public class StoreServiceTest {
public static void main(String[] args) {
//若在src下,这么写applicationContext.xml
//若在first下,这么写first/applicationContext.xml
//配置文件对象,为了方便的获取这个文件,用ClassPathResource封装,不进行解析,XmlBeanFactory对这个文件进行解析Resource resource=new ClassPathResource(applicationContext.xml);
BeanFactory context=new XmlBeanFactory(resource);
StoreService service = (StoreService)context.getBean(serviceStore);
service.sumbitOrder();
}
}
IOC容器的类型
BeanFactory:最原始的,
文档评论(0)