1.Spring最主要的就是IOC控制反转。通过IOC容器,配置对象的依赖关系。
通过BeanFactory factory=new ClassPathXMlApplicationContext(“….xml”);
UserManagerusrManager=(UserManager)factory.getBean(“useManager”);
/*
* userManager已经通过xml为我们配置上了UserManagerImpl。
*在UserManagerImpl里面,通过set方法,为userDao配上了userDao4OracleImpl
*/
userManager.set(…);
Xml:
<bean id="userDao4MySqlImpl"class="com.bjsxt.spring.dao.UserDao4MySqlImpl"/>
<beanid="userDao4OracleImpl" class="com.bjsxt.spring.dao.UserDao4OracleImpl"/>
<beanid="userManager" class="com.bjsxt.spring.manager.UserManagerImpl">
<!-- 构造方法注入
<constructor-argref="userDao4OracleImpl"/>
-->
<!—通过set方法为userDao这个变量注入userDao4OracleImpl -->
<propertyname="userDao" ref="userDao4OracleImpl"/>
</bean>
2.BeanFactory是一个重量级的,最好只初始化一次。所以我们在web.xml中对Spring的xml配置文件进行配置。
<!--listener负责读取我们context-param的配置文件,然后生成beanfactory -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext-actions.xml,
classpath:applicationContext-beans.xml,
classpath:applicationContext-common.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
如果再类中需要BeanFactory这个变量我们需要用如下方法调用:
BeanFactory factory =WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
//用BeanFactory足够。其实后面的方法返回的是ApplicationContext类,他是继承了BeanFactory,并封装了一些方法。
//ApplicationContextpc =WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
UserManageruserManager = (UserManager)factory.getBean("userManager");
userManager.login(laf.getUsername(),laf.getPassword());
3.出现BeanFactory存在一定的依赖查找。但是这种方法也有一定的应用。
现在理清一下思路,看上面1这个例子。如果想要userManager这个对象,但是不是通过BeanFactory创建,然后用getBean方法得到. 而是希望当创建一个类的时候,自动通过set方法为我们创建userManager。那么这个类必须被Spring管理。比如Structs和Spring的集成,就是通过在structs.xml中的DelegatingActionProxy,进行factory的getBean,将 UserAction创建,然后set方法获得userManager。
<bean name="/index"class="com.env.business.actions.UserAction">
<propertyname="userManager" ref="userManager"/>
</bean>
分享到:
相关推荐
整理了一下spring的加载, 个人对于Spring的流程的理解,望多多指正
但是本书不仅仅是简单的翻译,我会根据相应的模块给出一些代码的操作实践以及给出相应的源码分析,`SpringFramework`文档我个人认为在所有开源框架中算是写得最好的了,But如果对于初学者或者是实践经验较少的小伙伴...
但是本书不仅仅是简单的翻译,我会根据相应的模块给出一些代码的操作实践以及给出相应的源码分析,`SpringFramework`文档我个人认为在所有开源框架中算是写得最好的了,But如果对于初学者或者是实践经验较少的小伙伴...
spring源码执行流程,不含spring mvc,只包含spring上下文,包含整个流程中的关键代码以及英文doc注释翻译+个人理解
但是本书不仅仅是简单的翻译,我会根据相应的模块给出一些代码的操作实践以及给出相应的源码分析,`SpringFramework`文档我个人认为在所有开源框架中算是写得最好的了,But如果对于初学者或者是实践经验较少的小伙伴...
但是本书不仅仅是简单的翻译,我会根据相应的模块给出一些代码的操作实践以及给出相应的源码分析,`SpringFramework`文档我个人认为在所有开源框架中算是写得最好的了,But如果对于初学者或者是实践经验较少的小伙伴...
详述对Spring的依赖注入机制的理解,以及它对代码可维护性和灵活性的影响。分享在实际项目中如何巧妙运用依赖注入的经验。 三、实际项目经验分享 3.1 构建企业级应用 回顾参与的企业级应用项目,分享在项目中面临...
王富强版的Spring揭秘书,个人觉得算是写的不错的了,值的推荐,有兴趣的孩纸收藏吧,加深对Spring的理解。
尚硅谷Spring Cloud(自己整理);什么是微服务;微服务之间是如何独立通讯的;SpringCloud和dubbo有哪些区别;SpringBoot和SpringCloud,请你谈谈对她们的理解
这本书讲的很好,讲解非常详细,Spring各个知识点基本上都讲到了,深入浅出,举了很多通俗易懂的例子方便读者理解。个人印象比较深刻是在讲解IOC的时候举了一个《墨攻》例子,通过导演和演员的关系很巧妙地说明了...
spring cloud参考指南是对spring cloud官方文档的中文翻译,其中加入了些许个人理解,是学习spring cloud最佳技术参考文档
Spring Bean阅读 spring-beans模块源码阅读,和个人理解配合博客
适用人群:这篇文章适用于所有对Java Spring框架感兴趣的人,特别是Java初学者和希望了解Spring框架的开发者。无论你是刚开始学习Spring,还是已经有一定经验,这篇文章都能为你提供有用的信息和经验分享。 使用场景...
毕业设计是高等教育阶段学生在完成学业前所进行的一项重要学术任务,旨在检验学生通过学习所获得的知识、技能以及对特定领域的深刻理解能力。这项任务通常要求学生运用所学专业知识,通过独立研究和创新,完成一个...
但是本书不仅仅是简单的翻译,我会根据相应的模块给出一些代码的操作实践以及给出相应的源码分析,`SpringFramework`文档我个人认为在所有开源框架中算是写得最好的了,But如果对于初学者或者是实践经验较少的小伙伴...
立志称为一名合格的程序猿,能够达到独立开发的水平,可以凭借自己一个人的力量去实现一个项目从零开始到上线运维的全部过程,后续也会拍摄一些视频方便大家对某些知识点的理解,个人还是对算法与数据结构有着一定的...
毕业设计是高等教育阶段学生在完成学业前所进行的一项重要学术任务,旨在检验学生通过学习所获得的知识、技能以及对特定领域的深刻理解能力。这项任务通常要求学生运用所学专业知识,通过独立研究和创新,完成一个...
之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和...个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。
欢迎来到Spring-Analysis-Note :waving_hand: Spring 5原始学习笔记最近开始学习Spring 5源码,做了一些分析笔记,希望能加深自己对日常一直在用的Spring容器的理解,也希望对你有帮助同时由于个人技术有限,出现...
适合人群:对Spring Boot框架和Thymeleaf模板引擎有一定了解的毕业生、学生或者开发工程师,对理财管理系统开发有兴趣的人群。 能学到什么:①学习如何使用Spring Boot构建后端服务;②了解Thymeleaf模板引擎的使用...