栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring Framework到底是做什么用的?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Framework到底是做什么用的?

基本上,Spring是用于依赖项注入的框架,该框架是一种允许构建高度分离的系统的模式。

问题
例如,假设你需要列出系统的用户,从而声明一个名为的接口

UserLister

public interface UserLister {    List<User> getUsers();}

也许是一个访问数据库以获取所有用户的实现:

public class UserListerDB implements UserLister {    public List<User> getUsers() {        // DB access pre here    }}

在你看来,你需要访问一个实例(仅作为示例,请记住):

public class SomeView {    private UserLister userLister;    public void render() {        List<User> users = userLister.getUsers();        view.render(users);    }}

注意上面的代码没有初始化变量userLister。我们应该做什么?如果我像这样显式实例化该对象:

UserLister userLister = new UserListerDB();

…我将视图与访问数据库的类的实现结合在一起。如果我想从数据库实现切换到另一个从逗号分隔的文件中获取用户列表的实现该怎么办(请记住,这是一个示例)?在这种情况下,我将再次进入代码并通过以下方式更改最后一行:

UserLister userLister = new UserListerCommaSeparatedFile();

对于这样的小程序来说,这没有问题,但是…在具有数百个视图和类似数量的业务类的程序中会发生什么。维护成了一场噩梦!

Spring(依赖注入)方法

什么spring确实是来连线通过使用XML文件或注解,这样所有的对象实例化和spring初始化和班达注射在适当的地方(Servlet的Web框架,业务类,DAO的,等,等,等…)。

回到Spring中的示例,我们只需要为该

userLister
字段设置一个setter,并拥有一个像这样的XML文件:

<bean id="userLister"  /><bean >    <property name="userLister" ref="userLister" /></bean>

或更简单地使用以下注释在我们的视图类中归档@Inject:

@Injectprivate UserLister userLister;

当视图被创建这样奇迹般地将有一个UserLister准备工作。

List<User> users = userLister.getUsers();  // This will actually work          // without adding any line of pre

太棒了!是不是



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号