<div id="cnblogs_post_body" class="blogpost-body"><div> </div> <p>记录:在实体类中加入@Component注解和@Autowired注解时Service不能注入成功。</p> <div class="cnblogs_Highlighter sh-gutter"> <div><div id="highlighter_42067" class="syntaxhighlighter java"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div><div class="line number12 index11 alt1">12</div><div class="line number13 index12 alt2">13</div><div class="line number14 index13 alt1">14</div><div class="line number15 index14 alt2">15</div><div class="line number16 index15 alt1">16</div><div class="line number17 index16 alt2">17</div><div class="line number18 index17 alt1">18</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="java color1">@Component</code> <code class="java comments">//把普通pojo实例化到spring容器中 0</code></div><div class="line number2 index1 alt1"><code class="java spaces"> </code><code class="java keyword">public</code> <code class="java keyword">class</code> <code class="java plain">MyUtil{</code></div><div class="line number3 index2 alt2"><code class="java spaces"> </code><code class="java comments">// 这里是需要注入的Service ①</code></div><div class="line number4 index3 alt1"><code class="java spaces"> </code><code class="java color1">@Autowired</code></div><div class="line number5 index4 alt2"><code class="java spaces"> </code><code class="java keyword">private</code> <code class="java plain">MyService myService; </code></div><div class="line number6 index5 alt1"><code class="java spaces"> </code><code class="java keyword">private</code> <code class="java keyword">static</code> <code class="java plain">MyUtil myUtil; </code></div><div class="line number7 index6 alt2"><code class="java spaces"> </code><code class="java comments">//初始化 ②</code></div><div class="line number8 index7 alt1"><code class="java spaces"> </code><code class="java color1">@PostConstruct</code> </div><div class="line number9 index8 alt2"><code class="java spaces"> </code><code class="java keyword">public</code> <code class="java keyword">void</code> <code class="java plain">init() { </code></div><div class="line number10 index9 alt1"><code class="java spaces"> </code><code class="java plain">myUtil = </code><code class="java keyword">this</code><code class="java plain">; </code></div><div class="line number11 index10 alt2"><code class="java spaces"> </code><code class="java plain">myUtil.myService = </code><code class="java keyword">this</code><code class="java plain">.myService; </code></div><div class="line number12 index11 alt1"><code class="java spaces"> </code><code class="java plain">} </code></div><div class="line number13 index12 alt2"><code class="java spaces"> </code><code class="java comments">//调用 ③</code></div><div class="line number14 index13 alt1"><code class="java spaces"> </code><code class="java keyword">public</code> <code class="java keyword">static</code> <code class="java keyword">void</code> <code class="java plain">insertParam(</code><code class="java keyword">int</code> <code class="java plain">id){ </code></div><div class="line number15 index14 alt2"><code class="java spaces"> </code><code class="java comments">// 调用方法 ④ </code></div><div class="line number16 index15 alt1"><code class="java plain">myUtil.myService.testInsert(</code><code class="java string">"xxx"</code><code class="java plain">);</code></div><div class="line number17 index16 alt2"><code class="java spaces"> </code><code class="java plain">}</code></div><div class="line number18 index17 alt1"><code class="java spaces"> </code><code class="java plain">}</code></div></div></td></tr></tbody></table></div></div> </div> <p>注释:0 将普通pojo实例化到容器中、如果无注解myUtil为null<br> ① spring自动注入,如果在静态方法中调用此注入类的方法,发现注入为'null';这里不是因为spring未注入,而是被static方法给'清空'了,在无法先于static方法初始化时可以使用@PostConstruct进行初始化。<br> (注:@PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。)</p> <p> ②使用@PostConstruct注解的方法public void init()先给该类赋值,然后通过@Autowired注入进来。这样不会影响dao等service下面调用的注入。<br> ③ static方法<br> ④ 调用方法 myService现在是作为myUtil的属性</p> <p> </p> <p><a href="https://www.cnblogs.com/lovekxc/articles/6899755.html" target="_blank">参考</a></p></div>
本文转载自:https://www.cnblogs.com/jpfss/p/10839610.html
举报
打赏
0 赞
0 收藏
分享
加载中

其他人还在看
作用域是JS中一个很基础但是很重要的概念,面试中也经常出现,本文会详细深入的讲解这个概念及其他相关的概念,包括声明提升,块级作用域,作用域链及作用域链延长等问题。 什么是作用域 第一个问题就是我们要弄清...
在过去的一年多,由于工作的原因我接触 Kafka 比较多,在工作的过程中,总结了很多关于 Kafka 的知识并将它们沉淀为一篇篇文章,包括 Kafka 核心知识点的讲解,工作中遇到的问题排查分析与性能调优相关,仔细看了...
2021升级版SpringCloud教程从入门到实战精通「H版&alibaba&链路追踪&日志&事务&锁」 教程全目录「含视频」:https://gitee.com/bingqilinpeishenme/Java-Wiki OpenFeign实战开发和参数调优 OpenFeign基本使用 Op...
canvas多重阴影发光效果 前言 在一个项目中,客户提了一个发光的效果,效果图如下: 阴影 有的人可能会说,这个用阴影其实就可以实现。但是从图中可以看出,是一个比较强烈的发光效果。实际的应用过程中我们会发现...
关键词:Kotlin News 内联类从 1.3 推出,一直处于实验状态。 内联类 inline class,是从 Kotlin 1.3 开始加入的实验特性,计划 1.4.30 进入 Beta 状态(看来 1.5.0 要转正了?)。 内联类要解决的问题呢,其实也...
本文是Netty系列笔记第2篇 Netty是网络应用框架,所以从最本质的角度来看,是对网络I/O模型的封装使用。 因此,要深刻理解Netty的高性能,也必须从网络I/O模型说起。 看完本文,可以回答这三个问题: 五种I/O模型...
作者 | 毕玄 来源|阿里巴巴云原生公众号 对于程序员而言,我始终认为代码是展现能力的关键,一个优秀程序员写的代码,和一个普通程序员写的代码是很容易看出差别的,代码作为程序员的硬实力和名片的展示,怎么提升...
WebRTC 无疑推动和改变了互联网视频,而这仅仅是刚刚开始,除了大家熟悉的 WebRTC-PC、Simulcast 和 SVC,有太多的新技术和新架构出现在 WebRTC 新的标准中,比如 WebTransport、WebCodecs、AV1、E2EE、SFrame、M...
在职场上、在生活中提问无处不在,有时我们扮演着提问者,有时我们扮演着回答者。 有些人可能觉得不就是提个问嘛?有啥难的?我很认真的告诉你,提问是一门技术活。 如何正确地提出问题,是一个至关重要的技能。 ...
今天碰到群里小伙伴问,线上程序好像有多个不同版本的Netty包,怎么去看到底加载了哪一个? 在说如何看之前,先来说说,当你开始意识到项目里有多个不同版本的Jar包,都是因为遇到了这几个异常: java.lang.NoSu...
选择专区和圈子:{{title}}
{{o.name}}
{{m.name}}