zoukankan      html  css  js  c++  java
  • 2018.12.22 Spring学习02

    Spring学习02

    1.使用注解配置Spring

    1.1 为主配置文件引入新的命名空间(约束)

    添加约束文件xxx-xxx-context.xml

    添加到主配置文件中

    选择刚才的context.xml文档

    记住:一个xml文档只能有一个命名空间(昨天的命名空间是空的) 只需要写最后一个单词作为命名空间就可以了

    1.2 开启使用注解代理配置文件

    1.3 在类中使用注解完成配置

    1.4 编写测试类进行Junit测试


    解决办法

    重新运行

    1.5 将对象注册到容器中

    1.6 如何指定对象的作用范围 (scope注解)

    默认值属性singleton

    1.7 给对象赋值 (Value注解注入)

    1.7.1 值类型注入

    1.在成员变量上面添加Value

    2.在set方法上面添加Value(推荐使用)

    以上是值类型注入的两种方式。第一种是通过反射的Field赋值,第二种是set方法赋值。技术上来说第一种破坏了对象的封装性,但是大家都习惯加在成员变量上面

    1.7.2 引用对象类型注入

    在Car对象上注入注解 Component,并且添加Value赋值

    第一种注入方式。@Autowired

    在配置文件中添加第二辆车

    测试第一种方式发现无法输出第二辆车的信息输出

    第二种注入方式。@Autowired @Qualifier("car2") 需要两个一起结合使用

    第三种注入方式。@Resource(name="car2")

    1.7.3 指定注入初始化/销毁方法

    @PostConstruct //在对象创建后调用 init-method
    @PreDestroy //在对象销毁之前调用 destroy-method

    测试

    修改后二次测试

    2.STS插件安装

    查看详细的教程
    https://www.cnblogs.com/qichunlin/p/10159524.html

    3. spring与junit整合测试

    3.1 导包 4+2+aop+test

    在测试类中添加注释 @RunWith(SpringJUnit4ClassRunner.class)

    在添加一个注释 @ContextConfiguration("classpath:applicationContext.xml")

    测试

    3.spring中的AOP

    3.1思想 介绍

    第一次---拦截器(乱码处理)

    第二次---事务管理(通过动态代理方式解决)

    第三次---Action中参数赋值校验是否登陆

    3.2 spring中的aop概念

    Spring能够为容器中管理的对象生成动态代理对象
    以前我们要使用动态代理对象,我们需要自己调用下面的这个方法,Proxy.newProxyInstance(xx,xx,xx)
    spring能够帮我们生成代理对象 (重点)

    3.3 spring实现aop的原理

    3.3.1 动态代理(有接口,优先使用)

    被代理对象必须要实现接口,才能产生代理对象。如果没有接口将不能使用动态代理
    

    测试

    3.3.2 cglib代理(没有接口)

    第三方代理技术,cglib代理可以对任何类生成代理,代理的原理是对目标对象进行继承代理。如果目标对象呗final修饰,那么该类无法被cglib代理
    

    测试

  • 相关阅读:
    hyper-v启动虚拟机时提示“The application encountered an error while attempting to change the state of the machine ‘虚拟机名称'”如何处理?
    ubuntu下如何开机自动执行自定义脚本?
    centos下如何开放某个端口?
    linux都有哪些运行级别?
    linux内核在挂载ramdisk的过程中报错"RAMDISK: incomplete write (10739 != 32768)"如何处理?
    linux内核挂载根文件系统时报错”VFS: Cannot open root device "ram0" or unknown-block(0,0): error -6“如何处理?
    c代码审查软件
    项目管理术语表
    项目管理常用缩写
    MYSQL的读写分离主从延时问题
  • 原文地址:https://www.cnblogs.com/qichunlin/p/10163961.html
Copyright © 2011-2022 走看看