spring框架

  

   起因:软件系统的业务逻辑超来越复杂.

一. Spring概念

  1. spring是轻量级开源框架,在这之前有EJB(重量级的)  spring是一个容器框架,主要实现了ioc和aop思想.
  2. spring 的核心部分:

    (1) aop:面向切面编程,扩展功能不是修改源代码实现.

    (2) ioc:控制反转,促进了低耦合,管理对象,把对象的创建不是通过new 的方式实现,而是交给spring配置

           来创建对象.

  1. spring 是一站式框架.

(1) spring javaEE三层(mvc)结构中,每一层都提供不同的解决技术.

            web层:springmvc.

            service层:springioc.

            dao层:spring jdbcTemplate.

二. Spring作用

  降低耦合度

    程序之间的依赖关系

    类与类之间的依赖

    方法和方法之间的依赖

    解耦:降低程序间的依赖关系

    实际开发中:编译期不依赖,运行时依赖

  解耦的思路:

    使用反射创建对象,而不是直接new

    通过配置文件的方式获取要创建对象的全限定类名

    使用工厂模式获取对象

     程序之间的依赖关系不能完全消除,只能降低它们之间的依赖关系。

 

三. Spring注解

   1. 管理bean对象

    @Repository

    @Service

    @Controller

    @Component

   2. 管理bean对象的依赖关系

    @Autowried

    @Resource

   3. @Autowried@Resource的区别

    1. Resourcejdk的一个注解而不是spring框架的,相反@Autowriedspring框架的注解
    2. AutowriedResource都可以根据类型和名称进行注入
    3. @Resource注解更灵活,可以通过nametype属性指定bean名称和类型  
    4. @Autowired通过required 可以设置为false,指定为非必注入属性

 AOP思想

    是一种全新的编程思想,是对OOP(面向对象编程思想)的补充

    1.   面向过程
    2.   面向对象
    3.   面向切面编程思想(AOP
    4.   面向函数
    5.   面向组件

  应用场景

    权限验证(拦截器)

    单元测试

    事务管理

    操作日志打印功能(某用户在什么时候执行了什么操作)

  面向切面思路

    在程序运行过程中,根据aop配置,把非核心业务逻辑代码,动态的切入方法的开始

    结束或方法执行的全过程的编程思想就称为面向切面编程思想。

  配置使用 

    1.注解的方式配置

<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

    2.XML方式来配置

<!--配置aop 切面-->
    <aop:config>
        <!--配置切入点 id:给切入点命名,配置切面时要使用到-->
        <aop:pointcut id="pointOne" expression="execution(* com.sc.aop.UserDao.*(..))"></aop:pointcut>
        <!--<aop:pointcut id="pointOne" expression="execution(public void com.sc.aop.UserDao.*(String))"></aop:pointcut>-->
        <!--配置切面-->
        <aop:aspect ref="writeLog">
            <aop:before method="wr" pointcut-ref="pointOne"></aop:before>
        </aop:aspect>

    </aop:config>

 

 

五个通知

    @Before  前置通知

    @After   后置通知

    @AfterReturning  返回通知

    @AfterThrowing  异步通知

    @Around  环绕通知

 

posted @ 2019-09-08 10:46  changlinlo  阅读(216)  评论(0编辑  收藏  举报