Spring是如何将service注入到Action中的?

发布于 2022-09-03 23:38:44 字数 1334 浏览 21 评论 0

代码在这个链接上Maven搭建SSH框架
可以看到的是,Spring并没有明确对Struts2的Action进行明确的实例化,我在Action里面也查找了一下Bean的名字,发现也没有Action的存在,那么Spring是如何对Action中的Service进行注入的?
这是我找到的Bean的名字,是用网上的那种找Bean的方式找的,代码太多,链接在这里:链接

org.springframework.context.support.PropertySourcesPlaceholderConfigurer#0
flowBasicInfoService
flowBasicInfoDao
jobInfoDao
org.springframework.context.annotation.internalConfigurationAnnotationProcessor
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalRequiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.annotation.internalPersistenceAnnotationProcessor
dataSource
sessionFactory
transactionManager
transactionAdvice
org.springframework.aop.config.internalAutoProxyCreator
transactionPointcut
org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0
org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor
org.springframework.context.annotation.ConfigurationClassPostProcessor.enhancedConfigurationProcessor

大概这里的@autowire是由struts2识别的。
问题关闭。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

相权↑美人 2022-09-10 23:38:44

注解本身没有意义,是需要通过一些机制来识别它的。那么在这里就是由Spring来对注解进行识别,其作用就是变成我们所谓的可注入的Bean。
@Autowired是用于将Bean注入的注解,那么意味Spring的扫描出来的Bean中必须有你这个Bean,不然就没法注入啦。于是我们在代码里可以看到:

private UserInfoService userInfoService;

接下来看一下UserInfoService。嗯,符合规范,这是一个接口。UserInfoServiceImpl实现了这个接口,并且添加了注解@Service("userInfoService") ,那么这个注解就是作为了被Spring扫描的“根据”。

有兴趣的话,你可以试试去掉这个注解,看看会发生什么。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文