关于此类问题碰到完全因为是在项目开发中所有操作需求要求都需要有日志记录,所以当时想着写个工具类来统一化,但是在开发过程中就出现了个问题;在静态方法里面,他始终获取不到位null;Controller中使用service只需使用注解@Resource/@Autowired就行,但是一般类(即不使用@Controller注解的类)要用到service时,会提示找不到注解的属性值,所以会是null,就算调用service的类中有@Component注解加入了Spring容器管理,也还是null.(Utils工具类是静态方法,注解注入的service和mapper是非静态的,所以不行,即使把service和mapper注入为static静态的也还是会报空指针);故再网上看到了一位大神的总结试用后可以使用;故此记录:此方法的重要点在于@PostConstruct注解 将获取到的值的时候使静态的获取到值,其相当于@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法;
2、还有第二种方法但是未实行;就是通过配置的样式:
xml配置方式:
我们可以把init()方法上的@PostConstruct注解去掉,在spring-comtext.xml中配置以下bean就好了,里面什么内容都不用写,是不是很简单?
<bean id="logConfigDao" class="这里写utils类的包全路径名" init-method="init"></bean>