关于spring框架工作原理
⼀:spring基本概念
1)struts2是web框架,hibernate是orm框架
2)spring是容器框架,创建bean,维护bean之间的关系
3)spring可以管理web层,持久层,业务层,dao层,spring可以配置各个层的组件,并且维护各个层的关系⼆:spring核⼼原理1.IOC控制反转
概念:控制权由对象本⾝转向容器,由容器根据配置⽂件创建对象实例并实现各个对象的依赖关系。核⼼:bean⼯⼚
IoC(Inverse of Control)的字⾯意思是控制反转,它包括两个内容:其⼀是控制其⼆是反转
那到底是什么东西的“控制”被“反转”了呢?
对于软件来说,即是某⼀接⼝具体实现类的选择控制权从调⽤类中移除,转交给第三⽅决定。
但是,因为IoC确实不够开门见⼭,因此业界曾进⾏了⼴泛的讨论,最终软件界的泰⽃级⼈物Martin Fowler提出了DI(依赖注⼊:Dependency Injection)的概念⽤以代替IoC。
即让调⽤类对某⼀接⼝实现类的依赖关系由第三⽅(容器或协作类)注⼊,以移除调⽤类对某⼀接⼝实现类的依赖。“依赖注⼊”这个名词显然⽐“控制反转”直接明了、易于理解。2.AOP⾯向切⾯编程a.静态代理
根据每个具体类分别编写代理类根据⼀个接⼝编写⼀个代理类b.动态代理
针对⼀个⽅⾯编写⼀个InvocationHandler,然后借⽤JDK反射包中的Proxy类为各种接⼝动态⽣成相应的代理类三:简单的Spring⼊门案例1.编写⼀个类:UserService
package com.cloud.service; public class UserService { private String name;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public void sayHello(){
System.out.println(\"hello:\"+name); } }
2.编写核⼼配置⽂件:applicationContext.xml
xmlns:aop=\"http://www.springframework.org/schema/aop\" xmlns:tx=\"http://www.springframework.org/schema/tx\" xsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd \">
3.编写测试类:Test
package com.cloud.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.cloud.service.UserService; public class Test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext(\"applicationContext.xml\"); UserService userService = (UserService) ac.getBean(\"userService\"); userService.sayHello(); } }
4:spring原理总结
1.使⽤spring ,没有new对象,我们把创建对象的任务交给spring框架。
通过new XmlBeanFactory(“applicationContext.xml”)等⽅式即可启动容器。在容器启动时,Spring根据配置⽂件的描述信息,⾃动实例化Bean并完成依赖关系的装配,从容器中即可返回准备就绪的Bean实例,后续可直接使⽤之。
Spring为什么会有这种“神奇”的⼒量,仅凭⼀个简单的配置⽂件,就能魔法般地实例化并装配好程序所⽤的Bean呢?这种“神奇”的⼒量归功于Java语⾔本⾝的类反射功能。
2.spring实际上是⼀个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使⽤某个bean的时候,我们可以getBean(id),使⽤即可。
---------------------------------------------------------------------------------------------------------------------感谢到访!期待您的下次光临!
因篇幅问题不能全部显示,请点此查看更多更全内容