Spring原理机制
1.Spring是一个开源的轻量级框架,他的核心主要有两部分组成IOC(Inversion of control)控制反转和AOP(Aspect oriented programming)面向切面编程.
2.那么什么是IOC:调用类中的方法不是通过new它的对象来实现而是通过spring配置来创建类对象,而IOC又有两种操作方式(配置文件方式和注解方式),IOC底层运用的技术包括xml配置文件,dom4j解析xml,工厂设计模式,反射,这四种技术;接下来举个伪代码的例子,首先创建xml配置文件,配置要创建的对象类 <bean id="xx" class="xx路径">
这就是ioc底层实现的原理
3.一个简单的ioc入门案例(导入jar包,创建类在类里面创造方法,创建spring配置文件bean.xml,写代码测试对象创建),引入schema约束,配置对象创建<bean id="xx" class="xx类的全路径">----加载spring配置文件创建对象ApplicationContext context = new classpathXmlAppliation("bean.xml");
User u = (User)context.getBean("id对应的值");
4.spring的bean管理(配置xml方式)
bean实例化有是那种方式1.使用类的无参构造实现 常用的 2.使用静态工厂 3.使用实例工厂创建 ;bean标签常用的有id,calss,scope,其中scope默认值是单例的singleTon prototype多例的.举个最常用的属性注入<bean id="book" class="book的全路径">
<property name="类中属性名bookName" value="java编程思想"/>
</bean>
5.spring的bean管理(注解方式)
这种方式不需要在配置文件写bean配置,但是得开启注解扫描<context:compent-scan base=package="包名"></context:compent-scan>
然后在对应的类上面写注解就行.eg @component(value="user") public class User{},然后属性注入也是用注解方式就是
public class User{
@AutoWired //就自动注入了属性值
private UserDao userDao;
}
一般我们配置文件和注解混合使用,创建对象时使用配置文件来创建,注入属性时用注解来实现
6. Aop的概念是什么
一个程序当需要扩展功能时不通过修改源代码,仅仅修改配置文件就能达到目的.aop才去横向抽取机制取代了传统纵向继承体系重复性的代码;那么它的原理是什么? 底层使用动态代理的方式实现
先不聊这么深,我先把后面的知识点复习完
7.aop的相关术语
pointcut(切入点) :在类里面有很多的方法被增强(加功能的逻辑),真正操作的那个方法叫做切入点
Advice(通知/增强):增强的逻辑 eg:加逻辑的操作
Aspect(切面):把增强的逻辑应用到具体的方法上,这个过程叫做切面 ed:加功能到add方法的这一过程
另外Aspect本身不是Spring的一部分,只是经常个spring一起搭配使用
8.spring 的Aop具体操作
在spring中进行aop操作,使用aspectj实现,1.导入jar包 2.配置文件中引入aop约束
使用表达式配置切入点 execute(* 增强方法的全路径)
xml文件中配置aop的操作
9.基于Aspect的注解aop
在spring的配置文件bean.xml中开启aop操作<aop:aspectj-autoproxy></aop...>
@Aspect
public class MyBefore{
@Before(value="execute(* 增强方法的全路径)")
publi void before();
}
10.最后的补充
在web.xml中需要配置监听器和配置指定加载spring配置文件
监听器:
加载配置文件
---------------------
Spring原理机制相关推荐
- JVM加载class文件的原理机制
阅读目录 1.JVM 简介 2.JVM 的组成部分 3.JVM加载class文件的原理机制 在面试java工程师的时候,这道题经常被问到,故需特别注意. 回到顶部 1.JVM 简介 JVM 是我们Ja ...
- 描述一下JVM加载class文件的原理机制
Java中的所有类,都需要由类加载器装载到JVM中才能运行.类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中.在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的 ...
- java文件读入原理_描述一下JVM加载class文件的原理机制
1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从"Hello World "开始的,然后会写个复杂点class ,然后再找一些开源 ...
- 布式事务实践 解决数据一致性 Spring事务机制
Spring事务机制 介绍Spring的事务机制.事物抽象.内部事务和外部事物,以及常用的几种事务管理的实现,包括DataSource.JPA.JMS.JTA都通过实例进行说明.还有XA以及两阶段提交 ...
- Java提高篇——JVM加载class文件的原理机制
阅读目录 1.JVM 简介 2.JVM 的组成部分 3.JVM加载class文件的原理机制 在面试java工程师的时候,这道题经常被问到,故需特别注意. 回到顶部 1.JVM 简介 JVM 是我们Ja ...
- spring原理 struts2原理 hibernate原理 MyBatis原理 SpringMVC
Spring原理 最核心的就是IOC,动态注入DI,利用java里的反射,让一个对象的创建不用new了,可以自动的生产.Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象,和调 ...
- Spring Factories机制
Spring Factories机制简述 Spring Factories机制和Java SPI的扩展机制类似,Spring Boot采用了spring.factories的扩展机制,在很多sprin ...
- spring.factories机制
spring.factories 在Spring中有一种非常解耦的扩展机制:Spring Factories.这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的. Java SPI约定 Jav ...
- springboot核心基础之spring.factories机制
引言 在java spring cloud项目中,我们常常会在子模块中创建公共方法,那么在另外一个子模块中,需要加载配置文件的时候,往往Spring Boot 自动扫描包的时候,只会扫描自己模块下的类 ...
- J2EE JVM加载class文件的原理机制
JVM加载class文件的原理机制 1.Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中 2.java中的 ...
最新文章
- 苹果6尺寸_小屏+刘海被安卓阵营抛弃,苹果却玩出了花
- python导入其他py文件-Python中py文件引用另一个py文件变量的方法
- Promise.all 的原理
- 【中级软考】什么是非对称加密算法?
- 第五十四期:Libra盟友纷纷“跳船”,联盟链还有戏吗?
- *【UVA - 10382】Watering Grass(贪心,区间覆盖问题,思维)
- springboot + vue项目跨域请求解决方案
- dbf如何导入oracle_克服Oracle导数一切难题
- 潭州课堂25班:Ph201805201 第十二课 new方法,定制属性访问,描述符与装饰器 (课堂笔记)...
- Android扫描局域网内所有的ip地址
- 计算机主板日常维护主要做到什么,对计算机硬件日常维护的热点研究
- GDI+学习及代码总结之------文本与字体
- 学习一下什么是SRE和DevOps
- 天气很热,用Python告诉你奶茶哪家最好喝性价比最高?
- java继承stu继承person_4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (20 分)中的一些问题...
- 区块链革命 - 第1篇 假如需要变革 - 第2章 区块链经济七大设计原则
- 【Android 11】【WiFi模块】WiFi打开函数调用流程图
- spyder安装+使用中的问题
- CAMP的Python实现——金融大数据股票分析
- guava异步线程使用
热门文章
- ios 调整麦克风音量_我的iphone手机话筒声音特别小,如何调大?
- 数字日期格式转换yyyymmdd_如何把日期改为yyyymmdd
- Python tkinter库之Canvas 根据函数解析式或参数方程画出图像
- STM8L152K4T6原理图与开发程序
- git rm 和 rm 的区别
- 《大数据基础教程、实验和案例教程---林子雨版》分布式模式的HBase配置
- NXP推出Icode DNA芯片,助力产品防伪鉴定
- Java调用第三方http接口的常用方式
- 360提高计算机运行速度,360安全卫士如何提高开机和运行速度
- php gd保存图片,PHP: GD - Manual