目录
spring介绍:
它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架
Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。
- 轻量级:与EJB对比,依赖资源少,销毁的资源少。
- 分层: 一站式,每一个层都提供的解决方案
web层:struts,spring-MVC
service层:spring
dao层:hibernate,mybatis , jdbcTemplate --> spring-data
体系结构:
spring核心:
Spring的核心是控制反转(IoC)和面向切面(AOP)
spring优点:
- 方便解耦,简化开发 (高内聚低耦合)
· Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理
· spring工厂是用于生成bean
- AOP编程的支持
· Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
- 声明式事务的支持
· 只需要通过配置就可以完成对事务的管理, 而无需手动编程
- 方便程序的测试
· Spring对Junit4支持,可以通过注解方便的测试Spring程序
- 方便集成各种优秀框架
· Spring不排斥各种优秀的开源框架,
· 其内部提供了对各种优秀框架(如:Struts、 Hibernate、MyBatis、Quartz等)的直接支持
- 降低JavaEE API的使用难度
· Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低
核心API:
BeanFactory :这是一个工厂,用于生成任意bean。
采取延迟加载,第一次getBean时才会初始化Bean
ApplicationContext:
是BeanFactory的子接口,功能更强大。
(国际化处理、事件传递、Bean自动装配、各种不同应用层的Context实现)。
当配置文件被加载,就进行对象实例化。
ClassPathXmlApplicationContext:
用于加载classpath(类路径、src)下的xml
加载xml运行时位置 --> /WEB-INF/classes/...xml
FileSystemXmlApplicationContext :
用于加载指定盘符下的xml
加载xml运行时位置 --> /WEB-INF/...xml
通过java web ServletContext.getRealPath() 获得具体盘符