Spring中控制反转怎么配置的?比如Action类有个成员变量TestService testService,Action类就可以直接用TestServiceIMP中的方法了
来源:互联网 发布:淘宝如何好评截图 编辑:程序博客网 时间:2024/06/10 15:33
Spring中控制反转怎么配置的?比如Action类有个成员变量TestService testService,Action类就可以直接用TestServiceIMP中的方法了
方式由两种:
1)通过在spring中配置
...
...
...
如下图:
2)通过@component
=======================spring控制反转的实现过程,以及配置文件总结========================
1spring控制反转的实现过程
有个LoginAction类,该类有个成员变量private AdminService adminService。AdminService其实是一个接口,AdminServiceIMP才是真正的实现类。代码如下:
import com.example.hibernate.Users;
import com.example.service.AdminService;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport
{
private AdminService adminService = null;
public String execute() throws Exception
{
Users user=adminService.function();
}
public AdminService getAdminService()
{
return adminService;
}
public void setAdminService(AdminService adminService)
{
this.adminService = adminService;
}
}
想要通过执行adminService.function(),来实现执行AdminServiceIMP实现类的function方法; 这就是“控制反转”,即通过spring实现对AdminService的实例化,即AdminService adminService=new AdminServiceIMP();
这就需要在spring的配置文件中进行配置,配置如下:
<bean name="login" class="com.org.test.LoginAction">
<property name="adminService">
<ref local="AdminService" />
</property>
</bean>
<bean id="AdminService" class="com.example.service.AdminServiceIMP">
<property name="usersDAO">
<ref local="UsersDAOProxy" />
</property>
</bean>
...
...
...
其中第一个<bean>的意思是,对LoginAction类的成员变量adminService用id为AdminService的<bean>进行初始化(即第二个<bean>,即用com.example.service.AdminServiceIMP对adminService进行初始化)。具体解释如下图所示:
参考链接:
LoginAction类如何才能获取到spring配置的adminService传入参数呢?
1)将参数adminService定义到LoginAction的成员变量中。
2)生成adminService成员变量的get和set方法。
这样一来LoginAction类就能获取到在spring配置的adminService参数的值了,即AdminService adminService=new AdminServiceIMP(),执行adminService.function(),其实执行的就是AdminService.function方法,“控制反转”的配置就完成。
===
我的理解:控制反转的配置过程,其实就是LoginAction获取在spring中配置的传入参数adminService的过程。
2spring配置文件总结
其实spring配置文件就是配置各种bean,是多个<bean></bean>格式的重复。
- Spring中控制反转怎么配置的?比如Action类有个成员变量TestService testService,Action类就可以直接用TestServiceIMP中的方法了
- spring IOC控制反转,实现action的配置
- Spring整合Structs2时,Action类中的成员变量(Bean)的注入
- yii中Controller中的Action直接跳到另一个action的方法(yii学习)
- spring配置文件中配置Action中的scope
- struts2中的action中实现了validate方法,struts.xml中的action配置了通配符,不能自动跳转到input
- Struts2的学习(2)--Action类成员变量怎么获取表单属性值
- 在jsp的<s:iterator>标签中获取action中的定义的成员变量
- struts2 action中成员变量的生存周期
- struts2 - View页面中获取Action的成员变量
- struts2 - View页面中获取Action的成员变量
- spring in action 的两个样章可以下载了!
- SpringMVC一个Action中,可以写多个类似的业务控制方法(注解版) (7)
- action中调用另一个action中的方法
- ACTION中定义的变量,怎么传值到JSP页面
- ACTION中定义的变量,怎么传值到JSP页面
- 为什么类中的成员变量可以不赋值就运算?
- SSH配置环境都正常,但是每次执行到Action中的方法时就中断了,而且不报任何错误
- POJ 1679 最小生成树是否唯一 次小生成树
- UIView添加点击事件
- Ambari-Metrics配置指南
- class类名命名规则
- Java中Synchronized的用法
- Spring中控制反转怎么配置的?比如Action类有个成员变量TestService testService,Action类就可以直接用TestServiceIMP中的方法了
- 获取Windows系统版本
- 【socket】深入浅出讲解:php的socket通信
- hoj1030-Labyrinth
- 移除所有子视图,无需循环只需要一句代码
- maven引入私服jar
- 认识双阶乘
- Scala笔记一
- 瀑布流 collectionView实现