Spring入门知识3

2017-10-28  本文已影响0人  MsterKerrigan
ioc的注解方式的实现
    Spring的bean管理
    注解:代码里面的一些特殊的标记,使用注解可以完成一些相关的功能@+注解的名称(属性名=属性值)
        可以使用在类上面、方法上面和属性上面
        注解开发的准备工作
            1、导入基本的jar包
            2、导入注解的aop的jar包
            3、创建Spring的配置文件,引入约束
                ioc的基本功能引入的是bean的约束
                ioc注解的功能的话需要引入context的约束
            4、开启注解的扫描
                context:component-scan
                    base-package:要创建对象所在的类的包的名字
                                扫描多个包的时候可以在该属性这样写:xxx.xxx.xxx,xxx.xxx.xxx
                                也可以写这些包所在的上层包的名字:
                    到包里面扫描类、方法、属性上是否有注解
                context:annotation-config
                    只会扫描属性上面的注解
        使用注解创建对象
            在创建对象的类的上面使用注解,类上边写注解
            @Component(value="user")//相对于<bean id="user" class=""></bean>
            创建对象有四个注解:
                @Component
                @Controller
                @Service
                @Repository
            这四个注解都是创建对象的
            在web层用controller
            service层用service
            目前这四个注解的使用方法都是一致的,目前的功能都是一样的,不影响使用
            创建对象是一个单实例还是一个多实例?
                @scope(value="")
                value="singleton"单实例,默认的
                value="prototype"多实例对象、action一般用这个来进行配置
        使用注解注入属性
            创建一个service类,创建一个dao类,在service里得到一个dao的对象
            1、创建service和dao的对象
            2、在service类里面定义一个dao的属性
            3、在dao的属性上面使用注解进行注入
                @Autowired:自动装配
                根据类名找到这个类对应的对象,完成注入,跟dao上面注解的属性值没有关系
                @Resource(name="userDao")
                name属性值是通过注解创建的dao的对象的value值
                需要指定调用的是哪个对象
        配置文件和注解的混合使用
            1、创建对象的操作都使用配置文件的方式
            2、注入属性的操作一般使用注解的方式
    Junit测试的错误找caused by那一行
aop
    aop的概念
        面向切面编程(面向方面编程)
        扩展一个功能,不是通过修改源代码来实现
        aop采用横向抽取机制,取代了传统的纵向继承体系重复性代码
    aop底层原理(aop的基本操作)
        底层使用动态代理的方式实现
    aop操作的相关术语
        joinpoint连接点:类里面可以被增强的方法,这些方法被称为连接点
        Pointcut:切入点,在操作中只增强了部分方法,实际增强的方法称为切入点
        Advice:通知/增强,实际增强的逻辑,比如要扩展一个日志的功能,这个日志的功能的逻辑就被称为增强
                前置通知、在方法之前执行
                后置通知、在方法之后执行
                异常通知、方法出现异常执行
                最终通知、在后置之后执行
                环绕通知、在方法之前和之后执行
        Aspect:切面
            把增强应用到具体的方法上面,过程称为切面
            把增强应用到切入点的过程
aop的操作
    1、在Spring里面进行aop操作需要使用AspectJ实现
        1、AspectJ不是Spring的一部分,和Spring一起使用进行aop的操作
        2、Spring2.0以后增加了对AspectJ的支持
        新版本的Spring建议使用AspectJ来开发aop
    2、使用AspectJ实现aop有两种操作:
        1、基于AspectJ的xml的配置
        2、基于AspectJ的注解的方式来实现
aop操作的准备:
    1、除了导入基本的jar包以外,还需要导入aop的jar包
    2、创建一个Spring的核心的配置文件
        导入aop的约束
基于AspectJ的xml的配置:
    使用表达式配置切入点
        1、切入点:实际增强的方法
        2、常用的表达式
            execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)
            1、execution:
                访问修饰符:*表示任意修饰符+空格+增强方法全路径.方法名(..)
                execution(* com.spring.aop.Book.add(..))
            2、对类中所有方法做增强
                execution(* com.spring.aop.Book.*(..))
            3、所有类中的所有方法都增强
                execution(* *.*(..))
            4、匹配所有save开头的方法,然后进行增强
                execution(* save(..))
基于配置文件的配置进行增强:
    1、创建两个类的对象
    2、把对象创建之后在下面进行配置
        1、配置切入点
        2、配置切面
解决警告问题
    log4j的介绍:(日志的工具)
        1、通过log4j可以看到程序运行过程中更详细的信息
            1、经常使用log4j查看日志
        2、log4j的使用
            1、导入log4j的jar包
            2、复制log4j的配置文件
        3、更改debug或者info查看不同级别的日志信息
            info看到基本信息
            debug看到更加详细的信息
上一篇下一篇

猜你喜欢

热点阅读