代码改变世界

spring的入门(aop,ioc,bean作用域等)简介

2012-12-25 00:15  eoeAndroid社区  阅读(233)  评论(0编辑  收藏  举报

Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 

 

个人理解:Sping容器作为一个bean工厂,通过配置文件来管理bean(应用中所有组件都当成bean)

 

组成关系:BeanFactory -------->ApplicationContext(子接口)-------->ClassPathXmlApplicationContext (实现类)········

 

IOC控制反转模式(也称作依赖性介入)的基本概念是:通过配置文件来给类注入值,不需要new对象。好处:低耦合,当类改变时,无需要在类中修改,只需要在配置文件中修改

如:

 

  1. <bean id="bean2" class="yeah.developers.spring.Bean2">  
  2.  <property name="bean3" ref="bean3"></property>  
  3. </bean>  
  4. <bean id="bean3" class="yeah.developers.spring.Bean3">  

 

AOP面向切面编程:定义一个切面类,里面有很多方法,每个方法都有自己的切入点(在什么地方用到)和增强处理(前置,后置)

如:

切面类

@Aspect
public class LogPrint {
    @Pointcut("execution(* cn.itcast.service..*.*(..))")//声明一个切入点 
    private void anyMethod() {}
    @Before("anyMethod() && args(userName)")//定义前置通知
    public void doAccessCheck(String userName) {
    }    
    @AfterReturning(pointcut="anyMethod()",returning="revalue")//定义后置通知
    public void doReturnCheck(String revalue) {
    }
    @AfterThrowing(pointcut="anyMethod()", throwing="ex")//定义例外通知
    public void doExceptionAction(Exception ex) {
    }
    @After("anyMethod()")//定义最终通知
    public void doReleaseAction() {
    }
    @Around("anyMethod()")//环绕通知
    public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
        return pjp.proceed();
    }
}

 

4