标签:actor 两种 反转 理解 style 日志 构造 targe 安全
spring MVC:负责请求的转发和视图管理。
spring :实现业务对象管理。
mybatis :作为数据对象的持久化引擎。
Spring一个开源的,用来简化企业级应用开发的应用开发框架。Spring的核心就是IOC(控制反转)和AOP(面向切面编程)。因此,也可以说spring是一个轻量级的IOC(控制反转)和AOP(面向切面)的容器框架。
Spring容器:spring框架中的一个核心模块,用来管理对象(包括对象的创建,销毁和初始化等)。它帮助完成类的初始化与装配工作,让开发者从这些底层类的实例化,依赖关系装配类的工作中脱离出来,专注于更有意义的业务逻辑开发工作。
通过new XmlBeanFactory(“beans.xml”)等方式即可启动容器。在容器启动时,Spring根据配置文件的描述信息,自动实例化Bean并完成依赖关系的装配,从容器中即可返回准备就绪的Bean实例,后续可直接使用之。
Spring为什么会有这种“神奇”的力量,仅凭一个简单的配置文件,就能魔法般地实例化并装配好程序所用的Bean呢?这种“神奇”的力量归功于Java语言本身的类反射功能
何为“控制”:传统的JAVA SE程序设计,我们是从对象内部通过new创建对象,是程序控制对象的创建,而IOC有一个专门的容器(IOC容器)创建对象,IOC容器控制外部资源的获取(包括对象,文件等)。
何为“反转”:传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,即“正转”。而“反转”,是由容器来帮我们去创建及注入依赖对象。对象只是被动的接受依赖对象。依赖对象的获取被反转了。
ioc容器能帮我们管理对象的依赖关系,这样对象与对象的耦合度低,方便代码的维护。对于spring框架来说,ioc就是由spring来负责控制对象的生命周期和对象间的关系。
DI——dependenc injection,即“依赖注入”。IOC与DI有什么关系呢?其实它们是同一个概念的不同角度描述。“依赖注入”,相对ioc而言,“依赖注入”明确地描述了“被注入对象”依赖ioc容器配置依赖对象。IOC的一个重点是在系统运行中,动态的向某个对象提供所需要的其他对象,这一点通过DI实现。DI如何实现?这就要引入java 1.3之后的一个重要特征——反射(reflection)。它允许程序在运行的时候动态生成对象、执行对象的方法、改变对象的属性。spring就是通过反射注入的。
A. 构造器注入:通过调用的类的构造函数,将接口实现类通过构造函数变量传入。
B:setter方法注入:是容器通过调用无参构造器或无参static 工厂方法实列化bean之后,调用该bean的setter方法, 即实现了基于setter的依赖注入
AOP——(Aspect-Oriented Programming),即面向切面编程。AOP可以说是OOP的补充和完善。为了解决当我们需要为分散的对象引入公共行为的时候,如程序中交叉业务逻辑(日志,安全,事务),这是我们应当把它封装成一个切面,注入到目标对象(具体逻辑)中去。
实现AOP的技术主要分为两大类:
一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;
二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码.
标签:actor 两种 反转 理解 style 日志 构造 targe 安全
原文地址:https://www.cnblogs.com/mingyun/p/9237718.html