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配置文件

监听器:

加载配置文件


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值