动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Spring原理机制

07-14 11:31 598浏览
举报 T字号
  • 大字
  • 中字
  • 小字

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约束,配置对象创建----加载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配置文件

监听器:

加载配置文件

动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看Spring框架视频教程学习哦!

0人推荐
共同学习,写下你的评论
0条评论
代码小兵286
程序员代码小兵286

45篇文章贡献179882字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消