1、Spring是一个大容器,目的是为了简化开发流程
2、spring的两大特性:控制反转(Inversion of Control,IOC)、面向切面(AOP)
二、了解IOC
应用程序中如何使用对象?
1、由应用程序本省来创建(new)出对象;
2、由外部容器创建对象并注入应用程序,即创建对象的控制权由应用程序转为外部容器(Spring),即IOC
3、IOC的核心:依赖注入(Dependency Injection)
三、Spring 框架的简单搭建
1、引入所需的JAR包
2、创建Spring 配置文件
3、在配置文件中管理Bean对象
4、在应用程序中获取Bean对象并使用
AbstractApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");
五、Spring Bean对象声明周期
1、Singleton(默认):单例模式,每次调用Bean都是同一个对象
2、prototype:原型模式,每次调用Bean都会实例化新的Bean对象
3、request session application(在web中,跟随ServletAPI对象的生命周期来创建Bean对象)
4、在applicationContext.xml中bean标签中用scope属性设置生命周期
六、Spring中在Bean中注入属性
1、普通属性注入
2、自定义Bean注入
3、在applicationContext.XML中创建要被注入的类对应bean
4、在要注入的Bean中加入
七、Spring 中采用注解方式进行Bean注入
1、采用注解方式,需要修改xml头文件如下:
2、
3、@Resource(name="beanId")
八、Spring自动扫描并管理bean
1、原理:开启自动扫描的spring框架可以在指定的包下自动寻找标记为
@Component @Service @Controller @Repository的类
并将这些类作为Bean纳入Spring容器进行管理
解释:
@Controller:控制层组件(struts2中action,或servlet)
@Service:服务层组件(如service实现层)
@Repository:数据访问层组件(JDBC、DAO实现层)
@Component:其他组件(不属于上述类别的组件)
2、在applicationContext.cml中加入
<!--Spring自动扫描指定包下Bean-->
3、用注解的方式指定组件的beanId、生命周期、初始化和销毁方法
九、面向切面
代理模式实现横向的切面编程
1、请求---->代理对象----->实际调用的对象
十、面向切面配置
1、头文件的修改
2、添加aop支持
3、注解式AOP配置
1、创建需要拦截的Bean以及方法,
2、创建切面类,并采用@Aspect注解标记该类为一个切面类
3、创建切入点,并指定切面拦截的类和方法
@pointcut("execution(* cn.com.wxy.service.impl.*.*(..))")
private void logPoint(){}
4、创建切面通知方法
1、@Before("logPoint() && args(user)")//前置通知
2、@AfterReturning(pointcut="logPoint()",returning="result")//后置通知
3、@After("logPoint()")//后置通知
4、@Around("logPoint()")//环绕通知 注意:需要传递ProceedingJoinPoint参数
5、将该切面Bean交给Spring管理
spring配置文件Aop配置