[b]1. IoC : Inversion of Control 控制反转
应用本身不负责personDAO的创建和维护,而是由外部容器负责,使用依赖注入
来获取对象;
控制权就由应用移到了外部容器,控制权的转移就是反转;
class PersonServiceBean {
new personDAO();
}
如何实现依赖注入? 反射
Dependency Injection : DI
2. 依赖注入
(1) 方法: 构造函数;setter;
(2) 在运行期,由外部容器动态的
3. 为何使用Spring; ------- 面试
(1) 降低耦合度;
Service->DAO;
以前的做法:直接在Service中new出DAO;
还有通过Factory和属性文件,通过面向接口编程实现;
Spring:通过构造函数或setter方法,通过接口实现;
(2) 使用Spring的服务;
事务管理;消息服务;
如Hibernate和JDBC中对事务的控制,每个方法都要写事务控制语句;
itcastbbs解决了这个问题;通过Filter,控制每个请求;
Spring管理事务:设置属性
(3) 单例模式支持;
以前需要编码;Spring做简单配置即可;
(4) AOP技术,实现:权限拦截等等;
(5) 众多的辅助类:如JdbcTemplate, HibernateTemplate
(6) 对主流的应用框架提供了集成支持:Hibernate, JPA, Struts,Hibernate;
---- 简化开发
4. 轻量级与重量级概念的划分:[/b]
标准:使用了多少的服务
Spring: 默认不为应用打开;
EJB: 默认为应用打开;
5. 使用
(1) jar: spring.jar, commons-logging.jar
(2) 配置:beans.xml
名字随意取,内容可以在文档中搜索beans
beans.xml放在src-> classpath下
(3) 如何配置beans.xml;
(4) 实例化Spring容器
两种方法: 见ppt
类路径; 文件系统路径;
建议使用类路径下;
--- 使用单元测试:检查环境是否成功搭配;
6. bean内部原理:
开发模拟的Spring容器
ItcastClassPathXmlApplication
-- 定义1个bean:BeanDefinition,专门用于存放<bean>属性值;
--通过List存放全部的BeanDefinition
-- (1) init
使用dom4j读取配置文件;
为什么使用命名空间?·····················
-- (2) 实例化bean: 存入map中;
privateMap<String, Object> singtons = newHashMap():
-- (3) 获取bean getBean
singtons.get(beanName);
使用刚才的模拟容器:测试
7. Spring什么时候创建bean实例?
-- 验证:Spring什么时候创建bean实例?容器实例化,还是getBean();
判断:在HellWorldServiceImpl构造函数中syso:我被创建了
结果:默认情况下,容器实例化的时候创建;
-- 容器中保存几份bean对象;
判断: hellword1==hellword2
结果: 1份
8. bean的作用域;
默认情况下是单例的。
<beanscope="singleton">
scope="prototype" --- 每次getBean返回一个新的对象;[可以通过7判断]
lazy-int="true" ---容器启动时不创建对象,需要的时候(getBean)创建;
== <beans>中可以初始化所有的bean
init-method="init" ---bean初始化后立即完成一个操作(bean.init())
destroy-method="destroy" ---bean销毁前立即完成一个操作(bean.destroy())
==AbstractApplicationContext.close();
通过上述代码可以发现bean.destroy的执行
9. bean的创建:ppt
(1) 类构造器实例化: 掌握这一种即可
(2) 对象工厂来创建 :很少用
HelloWorldServiceFactroy
public staticHelloWorldServiceBean createHelloWorldServiceBean()
newHelloWorldServiceBean;
--- Spring中的配置:ppt
<bean
id="HelloWorldServiceBean"
factory-method="createHelloWorldServiceBean()">
(3) 实例工厂方法实例化:几乎不用,它需要实例化工厂
...
=========== 上述知识点 ===========
1. 如何把bean交给Spring管理
2. 如何实例化Spring容器;
3. bean的作用域;
4. 如何指定bean的初始化方法和销毁方法;
=========== 上述知识点 ===========
分享到:
相关推荐
spring介绍笔记。学习spring很好的文档
Spring框架是Java平台的一个开源应用框架,由Rod Johnson创建,并首次在2003年发布。它被广泛应用于各种规模的Java应用开发中。Spring提供了一个全面的编程和配置模型,可以用于企业级应用开发。Spring的核心是控制...
**Java Spring 框架简介** Java Spring 是一个开源的轻量级企业级应用程序框架,以其卓越的灵活性和模块化而闻名。它提供了一个全面的编程和配置模型,旨在简化Java开发并促进良好的编程实践。Spring的核心特性包括...
Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是...Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
【Spring框架概述】 Spring是一个广泛使用的开源Java框架,它的核心目标是简化企业级应用程序的开发复杂性。由Rod Johnson创建,Spring提供了一种轻量级的解决方案,避免了使用Enterprise JavaBeans (EJB)带来的...
Spring和 IOC 介绍 及简要配置说明,
本节将详细介绍Spring的基本概念、特点以及它如何作为一个容器和框架来工作。 首先,Spring 是一个开源的Java框架,由Rod Johnson创建,最初是为了应对EJB(Enterprise JavaBeans)在企业应用开发中带来的复杂性。...
JAVA spring的优缺点详解
Spring框架:引领企业级应用开发的强大引擎 Spring框架,作为Java企业级应用开发的领军者,以其独特的优势,为开发者提供了高效、灵活且易于维护的解决方案。它不仅仅是一个简单的框架,更是一套完整的开发理念和...
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。它由Rod Johnson于2002年首次提出,旨在解决企业应用开发的复杂性。Spring框架提供了基础的功能性支持,包括事务管理、安全控制、数据访问、远程...
**Java Spring 框架简介** Spring 是一个广泛使用的开源Java框架,主要设计用于简化企业级应用程序开发。它由Rod Johnson在2003年创建,最初作为一个轻量级的IoC(Inversion of Control,控制反转)容器,如今已...
- **第四章:企业级Spring介绍** —— 探讨了Spring框架在企业级应用中的高级用法。 - **第五章:Spring Integration介绍** —— 全面介绍了Spring Integration框架,包括其设计理念和主要组件。 - **第六章:通道...
4. 企业Spring介绍:扩展Spring框架的知识,特别关注企业环境中的应用。 5. Spring Integration介绍:正式进入Spring Integration的讲解,介绍其基本组件和集成架构。 6. 通道:详细讲解Spring Integration中的消息...
Spring是一个轻量级的开源Java框架,用于构建企业级应用程序。它提供了丰富的功能,包括依赖注入(DI)、面向切面编程(AOP)、容器管理、事务管理等,使得开发者能够更加专注于业务逻辑的实现而不必过多关注底层的...
在压缩包中的"Spring介绍及demo"部分,你可以找到以下内容: 1. **Spring Bean的配置**:展示如何通过XML或Java配置来定义和管理Bean。 2. **DI示例**:演示如何使用setter方法、构造器注入或自动装配来实现依赖...