Spring是一个非常活跃的开源框架, 它是一个基于IOC和AOP来构架多层JavaEE系统的框架,它的主要目地是简化企业开发。Spring以一种非侵入式的方式来管理你的代码, Spring提倡”最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring。
1.Spring 6个模块
Spring提供了一站式解决方案:
1) Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系
2) Spring Web Spring对web模块的支持。
可以与struts整合,让struts的action创建交给spring
spring mvc模式
3) Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】
4) Spring ORM spring对orm的支持:
可以与hibernate整合
也可以使用spring的对hibernate操作的封装
5)Spring AOP 切面编程
6)SpringEE spring 对javaEE其他模块的支持
2.引入jar文件
commons-logging-1.1.3.jar 日志
spring-beans-3.2.5.RELEASE.jar bean节点
spring-context-3.2.5.RELEASE.jar spring上下文节点
spring-core-3.2.5.RELEASE.jar spring核心功能
spring-expression-3.2.5.RELEASE.jar spring表达式相关表
3.核心配置文件
applicationContext.xml:
4.使用Spring容器
@Test public void test2() { ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("com/juaner/spring/applicationContext.xml"); User user = (User) ac.getBean("user"); System.out.println(user); }
5.实例化bean
bean的属性scope指定单例、多例模式。
如果为单例模式,对象在容器初始化之前创建,lazy_init可以延迟初始化到对象使用时才创建对象,支队单例有效。
如果为多例模式,对象在使用时创建。
6.设置依赖注入(Dependency Injection)
1) 通过构造函数
2) 通过set方法给属性注入值
3) p名称空间,需要引入命名空间
xmlns:p="http://www.springframework.org/schema/p"
4)自动装配
通过属性名查找:
通过类型查找,必须确保改类型在IOC容器中只有一个对象;否则报错:
5) 注解
引入context名称空间
xmlns:context="http://www.springframework.org/schema/context"
开启注解扫描
创建对象以及处理对象依赖关系,相关的注解:
@Component 指定把一个对象加入IOC容器
@Repository 作用同@Component; 在持久层使用
@Service 作用同@Component; 在业务逻辑层使用
@Controller 作用同@Component; 在控制层使用
@Resource 属性注入
7.完整配置