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

Java Spring的自动布线如何工作?

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

Java Spring的自动布线如何工作?

首先,也是最重要的一点-所有Spring Bean都受到管理-它们“实时”存在于称为“应用程序上下文”的容器中。

其次,每个应用程序都有一个指向该上下文的入口。Web应用程序具有Servlet,JSF使用el-resolver等。此外,在某个地方可以引导应用程序上下文,并且所有bean都可以自动连接。在Web应用程序中,它可以是启动侦听器。

通过将一个bean的实例放置到另一个bean的实例的所需字段中来进行自动装配。这两个类都应为bean,即应将它们定义为存在于应用程序上下文中。

应用程序上下文中的“生存”是什么?这意味着上下文会实例化对象,而不是你。即-你永远不会

new UserServiceImpl()
-容器找到每个注入点并在那里设置实例。

在控制器中,你只有以下内容:

@Controller // Defines that this class is a spring bean@RequestMapping("/users")public class SomeController {    // Tells the application context to inject an instance of UserService here    @Autowired    private UserService userService;    @RequestMapping("/login")    public void login(@RequestParam("username") String username,@RequestParam("password") String password) {        // The UserServiceImpl is already injected and you can use it        userService.login(username, password);    }}

一些注意事项:

  • 在你的applicationContext.xml,你应该让这样的类被扫描了@Controller,@Service等注释。
  • Spring-MVC应用程序的入口点是DispatcherServlet,但对你而言是隐藏的,因此应用程序上下文的直接交互和自举发生在幕后。
  • UserServiceImpl还应定义为bean-使用或使用@Service注释。由于它将是的唯一实现者UserService,因此它将被注入。
  • 除了@Autowired注释之外,Spring可以使用XML可配置的自动装配。在这种情况下,具有与现有Bean匹配的名称或类型的所有字段都会自动注入Bean。实际上,这是自动装配的最初想法-在字段中注入依赖项而无需任何配置。其他注释一样@Inject,@Resource也可以使用。


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

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

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