Java 各级注解及@Autowired注入为null解决办法

  

  1、@controller 控制器

  • 用于标注控制层,相当于struts中的action层。

    2、@service 服务层

  • 用于标注服务层,主要用来进行业务的逻辑处理。

    3、@repository DAO层(Repo层)

  • 用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件。

    4、@Autowired 注入实例

  • 表示被修饰的类需要注入对象,spring会扫描所有被@Autowired标注的类,然后根据 类型 在ioc容器中找到匹配的类注入。

    5、@Component (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>

  • 泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

  相对于@Autowired和@Component注解,个人理解实际用法为:

    如在普通类中用到需@Autowired注入实例,则需将普通类使用@Component注解标明,不然使用@Autowired注入的实例为null。

    一般普通类实例直接new即可,而在有上述两个注解的普通类在实例时需要使用@Autowired注入,如果直接使用new实例,则该类中使用@Autowired注入的实例为null。

  实例如下:

  

    在ExcelUtil工具类中需要使用@Autowired注入需用到的实例,则改工具类需用@Component注解标明,在使用该工具类时需要用@Autowired注入实例,如果使用ExcelUtil excelUtil = new ExcelUtil(); new实例,则工具类中注入的实例modelPropdictRepo为null。

原文地址:https://www.cnblogs.com/Big-Boss/p/10761514.html

时间: 2024-08-29 22:52:08

Java 各级注解及@Autowired注入为null解决办法的相关文章

Hbase出现ERROR: Can&#39;t get master address from ZooKeeper; znode data == null解决办法

问题描述如下: hbase(main):001:0> list TABLE ERROR: Can't get master address from ZooKeeper; znode data == null Here is some help for this command: List all tables in hbase. Optional regular expression parameter could be used to filter the output. Examples:

Java Runtime.getRuntime().exec 执行带空格命令解决办法

String command = OpenOffice_HOME + "program\\soffice -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\" -nofirststartwizard "; command = "cmd /c start "+command.replaceAll(" ","\" \""); P

getActiveWorkbenchWindow() return null 解决办法

getActiveWorkbenchWindow 有如下声明 /** * Returns the currently active window for this workbench (if any). Returns * <code>null</code> if there is no active workbench window. Returns * <code>null</code> if called from a non-UI thread. *

遇到java.lang.IllegalThreadStateException: Thread already started. 错误的解决办法

通过单击事件开启线程时,再次单击就会出现 java.lang.IllegalThreadStateException: Thread already started. 错误 解决办法: 创建一个Runnable: Runnable DownloadRunnable = new Runnable() { @Override public void run() { //需要处理操作} 然后每次需要调用的时候会重新new一个Thread: new Thread(DownloadRunnable).st

SQLNestedException: Cannot create JDBC driver of class &#39;&#39; for connect URL &#39;null&#39; 解决办法

当跑jndi项目时抛出:org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'异常 解决办法: 1.在Tomcat 6.0\lib下加入oracle驱动包ojdbc14_g-10.2.0.1.0.jar 2.在Tomcat 6.0\conf下的context.xml文件中加入 [javascript] view plaincopy <R

Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPointerException 错误的集中原因及解决办法

上面那个问题刚解决,就又来一个问题~~~~ 错误信息字符串:java.lang.RuntimeException: Unable to start activity ComponentInfo{...}: java.lang.NullPointerException 网上有不少解决办法 一般都会在Activity  onCreate()方法里的setContentView(XXX)发生此错误,网上查阅了很多原因,大概有四种重要可能的原因: 原因一:xxx的错误,若为R.layout.main 

转-java编译时error: illegal character &#39;\ufeff&#39; 的解决办法-https://blog.csdn.net/t518vs20s/article/details/80833061

原文链接:https://blog.csdn.net/shixing_11/article/details/6976900 最近开发人员通过SVN提交了xxx.java文件,因发布时该包有问题需要回退,故SCM将该xxx.java文件用editplus打开删除了新添的一行,删除后重新编译打包,却报了如下异常: java:[1,0] illegal character: \65279 表面看着该文件确实没错,看不出来问题,后来从SVN上更新下代码以后,发现本地也不报错,后来通过Eclipse查看了

@Autowired 注入为null

早上写代码的时候遇到@Autowired 注入为空的情况,一开始以为我在方法中存在空的变量导致报空指针异常.后来经过调试发现@Autowired没有进行注入导致变量为空,代码如下: public class TeamEmergency  implements Emergency{ @Autowired private TeamEmergency teamEmergency; } 后来在网上搜索后发现,要能自动注入需要此类在Spring容器里面,而我在调用该类的时候使用new 一个空间,这样导致会

Netty handler处理类无法使用@Autowired注入bean的解决方法

问题由来: 公司有个项目用到netty作为websocket的实现,最近打算部署双机,这使得原来保存在内存中的Channel信息不再可行,需要保存在redis中,改造过程中发现通过@Autowired注入进来的JedisClient类无法使用,外部表现为jedisClient对象为null 解决过程: 1.一开始以为是spring配置引入先后顺序的问题,导致netty启动的时候jedisClient还没实例化好,调整后发现问题依旧 2.之后百度发现有不少人遇到这个问题,有回答说netty中无法使