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原理机制相关推荐

  1. JVM加载class文件的原理机制

    阅读目录 1.JVM 简介 2.JVM 的组成部分 3.JVM加载class文件的原理机制 在面试java工程师的时候,这道题经常被问到,故需特别注意. 回到顶部 1.JVM 简介 JVM 是我们Ja ...

  2. 描述一下JVM加载class文件的原理机制

    Java中的所有类,都需要由类加载器装载到JVM中才能运行.类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中.在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的 ...

  3. java文件读入原理_描述一下JVM加载class文件的原理机制

    1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从"Hello World "开始的,然后会写个复杂点class ,然后再找一些开源 ...

  4. 布式事务实践 解决数据一致性 Spring事务机制

    Spring事务机制 介绍Spring的事务机制.事物抽象.内部事务和外部事物,以及常用的几种事务管理的实现,包括DataSource.JPA.JMS.JTA都通过实例进行说明.还有XA以及两阶段提交 ...

  5. Java提高篇——JVM加载class文件的原理机制

    阅读目录 1.JVM 简介 2.JVM 的组成部分 3.JVM加载class文件的原理机制 在面试java工程师的时候,这道题经常被问到,故需特别注意. 回到顶部 1.JVM 简介 JVM 是我们Ja ...

  6. spring原理 struts2原理 hibernate原理 MyBatis原理 SpringMVC

    Spring原理 最核心的就是IOC,动态注入DI,利用java里的反射,让一个对象的创建不用new了,可以自动的生产.Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象,和调 ...

  7. Spring Factories机制

    Spring Factories机制简述 Spring Factories机制和Java SPI的扩展机制类似,Spring Boot采用了spring.factories的扩展机制,在很多sprin ...

  8. spring.factories机制

    spring.factories 在Spring中有一种非常解耦的扩展机制:Spring Factories.这种扩展机制实际上是仿照Java中的SPI扩展机制来实现的. Java SPI约定 Jav ...

  9. springboot核心基础之spring.factories机制

    引言 在java spring cloud项目中,我们常常会在子模块中创建公共方法,那么在另外一个子模块中,需要加载配置文件的时候,往往Spring Boot 自动扫描包的时候,只会扫描自己模块下的类 ...

  10. J2EE JVM加载class文件的原理机制

    JVM加载class文件的原理机制 1.Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中 2.java中的 ...

最新文章

  1. 苹果6尺寸_小屏+刘海被安卓阵营抛弃,苹果却玩出了花
  2. python导入其他py文件-Python中py文件引用另一个py文件变量的方法
  3. Promise.all 的原理
  4. 【中级软考】什么是非对称加密算法?
  5. 第五十四期:Libra盟友纷纷“跳船”,联盟链还有戏吗?
  6. *【UVA - 10382】Watering Grass(贪心,区间覆盖问题,思维)
  7. springboot + vue项目跨域请求解决方案
  8. dbf如何导入oracle_克服Oracle导数一切难题
  9. 潭州课堂25班:Ph201805201 第十二课 new方法,定制属性访问,描述符与装饰器 (课堂笔记)...
  10. Android扫描局域网内所有的ip地址
  11. 计算机主板日常维护主要做到什么,对计算机硬件日常维护的热点研究
  12. GDI+学习及代码总结之------文本与字体
  13. 学习一下什么是SRE和DevOps
  14. 天气很热,用Python告诉你奶茶哪家最好喝性价比最高?
  15. java继承stu继承person_4.3 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company (20 分)中的一些问题...
  16. 区块链革命 - 第1篇 假如需要变革 - 第2章 区块链经济七大设计原则
  17. 【Android 11】【WiFi模块】WiFi打开函数调用流程图
  18. spyder安装+使用中的问题
  19. CAMP的Python实现——金融大数据股票分析
  20. guava异步线程使用

热门文章

  1. ios 调整麦克风音量_我的iphone手机话筒声音特别小,如何调大?
  2. 数字日期格式转换yyyymmdd_如何把日期改为yyyymmdd
  3. Python tkinter库之Canvas 根据函数解析式或参数方程画出图像
  4. STM8L152K4T6原理图与开发程序
  5. git rm 和 rm 的区别
  6. 《大数据基础教程、实验和案例教程---林子雨版》分布式模式的HBase配置
  7. NXP推出Icode DNA芯片,助力产品防伪鉴定
  8. Java调用第三方http接口的常用方式
  9. 360提高计算机运行速度,360安全卫士如何提高开机和运行速度
  10. php gd保存图片,PHP: GD - Manual