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代理
测试
2018.12.22 Spring学习02的更多相关文章
- 2018.12.20 Spring环境如何搭建
Spring学习 1.导入spring约束 为后续创建xml文件做铺垫 2.开始搭建Spring环境 1.创建Web项目,引入spring的开发包(根据下面的图来引入) 2.引入jar包 coreCo ...
- 2018.12.25 Spring中JDBCTemplate模版API学习
1 Spring整合JDBC模版 1.1 spring中土拱了一个可以操作数据库的对象.对象封装了jdbc技术 JDBCTemplateJDBC模板对象 1.2 与DBUtils中的QueryRunn ...
- Win7 VS2017 NASM编译FFMPEG(2018.12.22)
今天无意中在gayhub发现个牛逼工程,全VS工程编译FFMPEG库,包括依赖库全是VS生成的,无需Mingw等Linux环境. 简单记录下过程,以防将来重装系统等情况,备忘. https://git ...
- spring学习(02)之配置文件没有提示问题
配置文件没有提示问题 1 spring引入schema约束,把约束文件引入到eclipse中 (1)复制约束路径 http://www.springframework.org/schema/beans ...
- Spring 学习02
一.上节内容回顾 1 spring的概念 (1)核心:ioc和aop (2)spring一站式框架 2 spring的bean管理(xml) (1)bean实例化 (2)注入属性 (3)注入对象属性 ...
- 2018.12.24 Spring中的aop演示(也就是运用aop技术实现代理模式)
Aop的最大意义是:在不改变原来代码的前提下,也不对源代码做任何协议接口要求.而实现了类似插件的方式,来修改源代码,给源代码插入新的执行代码. 1.spring中的aop演示 aop:面向方面编程.不 ...
- Spring学习02——控制反转、依赖注入
有两个人,张三和李四 package com.su.service; public class ZhangSan implements Tester{ public void test(){ Syst ...
- Spring学习02(DI依赖注入)
5.依赖注入(Dependency Injection,DI) 5.1 概念 依赖 : 指Bean对象的创建依赖于容器 . Bean对象的依赖资源 . 注入 : 指Bean对象所依赖的资源 , 由容器 ...
- 2018/12/22:centos中转换目录时/root的影响
今天在将一个压缩包复制到/root下,并解压.从表面看我试在根目录下,但是就是不能进入生成的目录,提示no such file or diraction.最后我加上/root又好了,奇怪 编译环境:输 ...
随机推荐
- EditText属性
来自http://mp.weixin.qq.com/s/Yncr0XZ4MCWZH2vzTVyYJw android:inputType=”none”android:inputType=”text”a ...
- 使用 Ninject
在[ASP.NET MVC 小牛之路]系列上一篇文章(依赖注入(DI)和Ninject)的末尾提到了在ASP.NET MVC中使用Ninject要做的两件事情,续这篇文章之后,本文将用一个实际的示例来 ...
- (转)Python之文件读写
Python之文件读写 原文:https://www.cnblogs.com/huilixieqi/p/6494891.html 本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 ...
- Tomcat服务器安装
Tomcat服务器类似于XAMPP,主要安装步骤如下. 第一步: 安装JDK. 第二步: 安装tomcat. 第三步: 启动tomcat下bin下的startup.bat即可启动tomcat. 可能出 ...
- ztree框架使用问题汇总
1.如何让用户只能点击页子节点 var setting = { callback: { beforeClick: zTreeBeforeClick } }; function zTreeBeforeC ...
- mongodb连接失败原因排查
安装了mongodb,添加了管理员root和test数据库的用户rex,并且开启的用户认证. 按照说明文档连接mongodb数据库:$mongo = new Mongo("mongodb:/ ...
- 如何给MySql创建连接用户并授权
一般在为MySql创建用户时建议使用GRANT前台命令,当然如果对我们开发者而言,方法还有很多种,比如使用INSERT命令,甚至是直接修改mysql user数据表,但仍然建议按照MySQL规范去授权 ...
- python 生成、删除、拷贝目录
1. 生成目录 函数原型:distutils.dir_util.mkpath(name[, mode=0777, verbose=0, dry_run=0]) from distutils impor ...
- 【linux相识相知】VIM编辑器
Vim是一个类似Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了许多的功能,VIM是自由软件,今天我们就来讲讲VIM的使用方法. 本文是基于centos7上的vim编辑器演示的 ...
- js根据子目录数目显示父级目录
需求:<ul>中<li>数量为0,则不显示<ul>以及<b>:<div>中<ul>数量为0,则不显示<div> 1. ...