JEE_Spring

=========================================================================
//Spring
Spring框架的分层架构组件模块:
Spring Core:
Spring AOP:
Spring ORM:
Spring DAO:
Spring Context:
Spring Web:
Spring MVC:


//-----------------
Spring核心机制: 控制反转, 依赖注入.
依赖注入IOC: Inversion of Control.
依赖注入DI: Dependency Injection.
依赖注入的两种方式:
1)set注入
2)构造注入


//-----------------
Spring核心容器: 配置文件中的Bean.
Spring是作为一个容器存在的,应用中所有的组件都处于Spring的管理之下,都被Spring以Bean的方式管理.
Spring负责创建Bean的实例,并管理其生命周期.
Spring有两个核心接口: BeanFactory和ApplicationContext.
Spring容器是生成Bean的工厂,所有的组件都被当成Bean处理,如数据源,Hibernate的sessionFactory,事务管理器等.
Bean是Spring容器的基本单位.

Bean是描述Java的软件组件模型,其定义在Spring配置文件的根元素<beans>下,有子元素<bean>.
每个<bean>可以完成简单或复杂的功能,也可以多个协同工作,完成复杂关系.

Bean的属性: id, class, scope, property.

Bean的生命周期: 定义,初始化,使用,销毁.

Bean的管理: BeanFactory, ApplicationContext.

Bean的依赖关系,Bean的自动装配.

Bean对集合的注入: list注入, set注入, map注入.

Spring后处理器: Bean后处理器, 容器后处理器.


//----------------Spring的AOP及事务支持
//-------------
AOP: Aspect-Oriented Programming,面向切面编程.
1.代理机制: 静态代理, 动态代理.
2.
横向关注点Cross-cutting concern,
横向关注面Aspect,
连接点Join point,
切入点Pointcuts,
通知Advice,
拦截器Interceptor,
目标对象Target object,
AOP代理.

Spring1.X的AOP支持:

Spring2.X的AOP支持:

Spring的事务支持:


//-------------Spring的Web框架, MVC Web框架:****

===================================================参见:郑阿奇《JavaEE实用教程》

 

 

Spring 术语:
松耦合, IOC控制反转, AOP面向切面编程, 面向接口编程, Bean,
DAO数据访问对象, ORM对象关系映射,
依赖注入(set注入, 构造注入), 反射技术,
Spring容器(Bean---BeanFactory---ApplicationContext).


IOC控制反转:
应用本身不负责依赖对象的创建及维护,
依赖对象的创建和维护交由外部容器负责(控制权的转移).
依赖注入DI:在运行期,由外部容器动态地将依赖对象注入到组件中.

Spring框架:
降低组件之间的耦合度,实现软件各层的解耦.
可以使用容器提供更多服务: 事务管理,JMS,持久化....
提供了单例模式,
提供了AOP技术,可轻松实现权限拦截,监控等,
提供了许多辅助类,提供了框架整合支持.

EJB是属于重量级,
Spring根据所实现服务的多少判断是轻量级或是重量级.

Spring+JUnit.

接口与实现类: *.service, *.service.impl,
抽取抽象方法:右键实现类---Refactor---Extract Interface...---选择方法...


===========================================
<bean>的属性:
id: xml中的ID属性,会被xml解析器校验,不能包含'/'.
name: 可以包含特殊字符'/'.
<bean>会被Spring容器自动创建和维护.
用的时候直接获取bean,不用创建

dom4j:解析xml,模拟Spring.

三种实例化Bean的方式:

Bean的作用域:

Bean的生命周期:

Bean的注入:[手动装配]
1.装配(xml方式):
2.使用Spring注解:
注解本身并不实现具体功能----同xml文件一样只是提供配置作用.
注解的具体功能实现----注解处理器 + 反射.
[自动装配]: autowire = "by Type"(不推荐).

Spring结合注解,在classpath路径下自动扫描和管理bean组件:
@Component:泛指组件,
@Controller:控制层,
@Service:业务层,
@Repository:数据访问层DAO组件,
@PostContruct:初始化,
@PreDestroy:销毁.


===========================================
AOP[传智播客15--19讲]:
权限拦截等: Web应用才能采用过滤器;
代理机制:静态代理,动态代理.
代理模式:
1)采用JDK提供的代理类Proxy.
  动态代理类实现InvocationHandler接口复写invoke(),
2)cglib生成目标类的代理对象(目标类没有实现接口)

1.基于Annotation方式进行AOP开发
1)在xml中引入AOP的命名空间:<aop:aspectj-autoproxy />
2)@Aspect切面
@Pointcut切入点
@Before前置通知
@AfterReturning后置通知
@AfterThrowing例外通知,
@After最终通知,
@Around环绕通知.

2.使用XML方式开发AOP
<aop:config>
<aop:aspect>
<aop:pointcut>
<aop:before>
<aop:around>
<aop:after-throwing>
<aop:after>
<aop:after-returning>

===========================================
Spring + JDBC开发:
1.配置数据源
2.配置事务
Annotation:命名空间中配置, @Transaction事务管理
XML:Propagation:"NOT_SUPPORTED"事务传播行为
Spring的事务管理器:自动完成事务的打开和提交.
3.DataSource数据源------XML配置文件中注入-----JdbcTemplate类CRUD操作.

Spring事务的提交回滚:
1)unchecked Exception:回滚
2)checked Exception:不回滚
事务传播属性:
不开启事务:@Transactional(propagation:Propagation.NOT_SUPPORTED)

数据库系统提供了四种事务隔离级别:--------锁
1)Serializable串行化.
2)Repeatable Read.
3)Read Commited.
4)Read Uncommited.

===============================================参见:传智播客Spring.

 

posted @ 2012-08-19 22:14  汤姆是一只猫  阅读(691)  评论(0编辑  收藏  举报