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代理

测试

2018.12.22 Spring学习02的更多相关文章

  1. 2018.12.20 Spring环境如何搭建

    Spring学习 1.导入spring约束 为后续创建xml文件做铺垫 2.开始搭建Spring环境 1.创建Web项目,引入spring的开发包(根据下面的图来引入) 2.引入jar包 coreCo ...

  2. 2018.12.25 Spring中JDBCTemplate模版API学习

    1 Spring整合JDBC模版 1.1 spring中土拱了一个可以操作数据库的对象.对象封装了jdbc技术 JDBCTemplateJDBC模板对象 1.2 与DBUtils中的QueryRunn ...

  3. Win7 VS2017 NASM编译FFMPEG(2018.12.22)

    今天无意中在gayhub发现个牛逼工程,全VS工程编译FFMPEG库,包括依赖库全是VS生成的,无需Mingw等Linux环境. 简单记录下过程,以防将来重装系统等情况,备忘. https://git ...

  4. spring学习(02)之配置文件没有提示问题

    配置文件没有提示问题 1 spring引入schema约束,把约束文件引入到eclipse中 (1)复制约束路径 http://www.springframework.org/schema/beans ...

  5. Spring 学习02

    一.上节内容回顾 1 spring的概念 (1)核心:ioc和aop (2)spring一站式框架 2 spring的bean管理(xml) (1)bean实例化 (2)注入属性 (3)注入对象属性 ...

  6. 2018.12.24 Spring中的aop演示(也就是运用aop技术实现代理模式)

    Aop的最大意义是:在不改变原来代码的前提下,也不对源代码做任何协议接口要求.而实现了类似插件的方式,来修改源代码,给源代码插入新的执行代码. 1.spring中的aop演示 aop:面向方面编程.不 ...

  7. Spring学习02——控制反转、依赖注入

    有两个人,张三和李四 package com.su.service; public class ZhangSan implements Tester{ public void test(){ Syst ...

  8. Spring学习02(DI依赖注入)

    5.依赖注入(Dependency Injection,DI) 5.1 概念 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器 ...

  9. 2018/12/22:centos中转换目录时/root的影响

    今天在将一个压缩包复制到/root下,并解压.从表面看我试在根目录下,但是就是不能进入生成的目录,提示no such file or diraction.最后我加上/root又好了,奇怪 编译环境:输 ...

随机推荐

  1. mysql 问题总结[转]

    一.Can't connect to MySQL server on 'localhost' (10061)   不能连接到 localhost 上的mysql分析:这说明“localhost”计算机 ...

  2. 里氏替换原则(Liskov Substitution Principle) LSP

    using System; using System.Collections.Generic; using System.Text; namespace LiskovSubstitutionPrinc ...

  3. 安装cloudermanager时出现org.spingframework.web.bind.***** host[] is not present at AnnotationMethodHandlerAdapter.java line 738 ****错误(图文详解)(博主推荐)

    不多说,直接上干货! 首先,这个问题,写给需要帮助的朋友们,本人在此,搜索资料近半天,才得以解决.看过国内和国外,资料甚少.特此,写此博客,为了弥补此错误解决的资料少的缘故! 问题详解  解决办法   ...

  4. daterangepicker

    官方文档 http://www.daterangepicker.com/#examples 与angular结合 html <div date-range-picker class=" ...

  5. [實現DDD] 第10章 聚合(1)設計原則

    聚合只是將一些實體(Entity)與值對象(Value Object)聚集起來的對象樹嗎?? 有些途徑可能使我們設計出不正確的聚合模型, 如:可能為了對象組合上的方便而將聚合設計的很大;也可能設計的聚 ...

  6. Springboot - 自定义错误页面

    Springboot 没找到页面或内部错误时,会访问默认错误页面.这节我们来自定义错误页面. 自定义错误页面 1.在resources 目录下面再建一个 resources 文件夹,里面建一个 err ...

  7. [Verilog] parameter

    parameter和localparam的作用范围均为本模块,区别在于前者可用于在实例化模块的时候进行参数的传递. 用已定义的参数对变量赋值时,按照补码的方式处理,若出现溢出的情况,则截取低位.

  8. oracle dblink简介

    database link概述 database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序.在任何分布式环境里,database都是 ...

  9. jquery的方法总结

    1.1.概述随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype.YUI.jQuery.mootools.Bindows以及国内的J ...

  10. 认识Spring AOP

    Spring AOP AOP是Aspect/'æspekt/ Oriented/ɔːrɪentɪd/ Programming的缩写,意为:面向切面编程. 是什么 通过预编译方式和运行期动态代理实现程序 ...