发表自本人博客 http://irfen.me
先说下我现在使用的版本:Spring3.0 annotation写的
今天写项目遇到了一个问题:想通过jstl自定义函数来实现页面上面的一部分内容。通过Spring注入后发现报如下错误:
@Resource annotation is not supported on static fields
上网搜寻发现,Spring注解注入不支持静态变量注入,遂想办法解决。
首先看到的方法是有一个
<bean id=”userService” class=”bookstore.service.UserService” init-method=”init” destroy-method=”destroy”> … </bean>
这样的方法,通过编写一个方法init(),然后通过xml配置 init-method=”init” ,在init方法中从取值赋成静态的,但是我不想写xml,毕竟项目里主要用的都是annotation方式,于是发现如下两个注解:
@PostConstruct 和 @PreDestroy
一个是在初始化之后调用,一个是在摧毁之前调用。这样就可以使用的。
我在junit下做了测试,就不发项目代码了,代码如下:
@Resource private HibernateTemplate hibernateTemplate; private static TalentsDaoImplTest td; @PostConstruct public void init() { td = this; td.hibernateTemplate = this.hibernateTemplate; } @Test public void testStatic() { Talents talents = td.hibernateTemplate.get(Talents.class, 1L); System.out.println(talents.getAge()); }
发这篇只是发现,可能是这个问题出现的或者是使用的人比较少,但是这个解决方案真的不太好找,我就总结下来,希望可以给大家提供帮助。
还有就是我这样是可以解决了,不知道大家是否还有更好的解决办法,欢迎大家共同来分享。
发表自本人博客 http://irfen.me
相关推荐
通过上述分析和示例,我们可以看到,在Spring框架中,虽然不能直接使用`@Value`注解为静态变量注入值,但可以通过定义一个非静态方法并使用`@Value`注解来间接实现这一目标。这种方法不仅避免了潜在的警告和错误,还...
然而,静态方法和静态变量不参与Spring的生命周期管理,因此,尝试在静态字段或静态方法中直接使用`@Autowired`注入Bean会导致空指针异常,因为Spring容器不会初始化静态成员。 **解决方法1:使用@Component和非...
多线程Autowire注入null的解决方案 在 Spring 项目中,多线程 Autowire 注入 null 的问题是一个常见的问题。当我们在多线程中使用 @Autowired 注解时,可能会出现 null 的情况。这是因为多线程是防注入的,容器中的...
Spring是一个轻量级的JavaEE解决方案,它解决了EJB的问题,如运行环境苛刻、移植性差等。Spring的本质是一个工厂加配置文件,通过工厂设计模式来解决耦合问题。 一、工厂设计模式 工厂设计模式是解决耦合问题的一...
设计模式是解决特定问题的一种通用解决方案, Spring框架中大量使用了设计模式。学习设计模式可以帮助我们更好地理解Spring框架的实现原理和编程思想。常见的设计模式有: * 创建型:单例模式、工厂方法、抽象工厂...
在Spring框架下实现消息队列(MQ)服务,可以极大地简化JMS(Java Message Service)的集成和管理,提供更高效、可维护的解决方案。本文将深入探讨如何使用Spring结合MQ6.0来实现JMS异步通信,并比较Spring与传统JMS...
在《spring注入教训.txt》这个文件中,很可能详细记录了作者在Spring框架中遇到的注入问题及其解决方案。Spring框架以其依赖注入(DI)和面向切面编程(AOP)特性著称,但在使用DI时,如果不正确地管理bean的生命...
9.9. 公共问题的解决方案 9.9.1. 对一个特定的 DataSource 使用错误的事务管理器 9.10. 更多的资源 10. DAO支持 10.1. 简介 10.2. 一致的异常层次 10.3. 一致的DAO支持抽象类 11. 使用JDBC进行数据访问 11.1. 简介 ...
1. 微服务架构:在Spring Cloud中,Thymeleaf可以作为服务端渲染的解决方案,与API Gateway配合,提供完整的前后端分离应用。 2. 模板统一:在分布式环境中,Thymeleaf可确保所有微服务的视图层保持一致,便于维护和...
Spring是一个开源的Java平台,它提供了全面的企业级应用开发解决方案,包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)、数据访问、事务管理等。Spring框架的核心是...
4. 静态工具类:静态工具类是一种常见的编程模式,但是,在 Spring 中,静态工具类不能被 Spring 容器管理,因为静态成员变量不能被注入。 5. Bean 的生命周期:在 Spring 中,Bean 的生命周期是指 Bean 的创建、...
示例项目则提供了一个实战环境,让开发者能够直接看到Spring框架在实际应用中的实现,从而学习到最佳实践和常见问题的解决方案。 "3-3 源代码"对于想要深入研究Spring框架内部工作原理的开发者来说尤其宝贵。通过...
在博文链接中,我们可以推测作者分享了关于该项目的详细信息和经验,包括如何设置、运行以及可能遇到的问题和解决方案。遗憾的是,具体的博客内容没有提供,所以我们只能根据常规的Spring MVC项目结构和常见实践来...
Spring MVC是Spring框架的一部分,它提供了一个用于构建MVC(Model-View-Controller)结构的轻量级、灵活的解决方案,而FreeMarker则是一个模板引擎,主要用于生成动态网页内容。在这个"spring mvc+freemaker 开发...
Spring框架是Java领域内最为流行和广泛使用的开源应用框架之一,其核心功能是基于依赖注入(DI)和面向切面编程(AOP)来构建应用程序。Spring框架的特点包括声明式事务管理、事件模型以及提供了一系列可复用的组件...
SSH框架,全称为Struts2、Spring和Hibernate的集成框架,是Java开发Web应用时常用的一种解决方案。这个框架集合了Struts2的MVC模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能,提供了高效且灵活...
总之,"Struts2+Spring2.5+Hibernate3.2+Freemarker"的组合为Java Web开发提供了一个强大且灵活的解决方案,通过整合这些框架,开发者可以更专注于业务逻辑,而无需过于关注底层的细节。对于初学者来说,理解并掌握...
它提供了一种依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的解决方案,帮助开发者管理应用的组件和生命周期。 **Freemarker模板引擎** Freemarker是一个基于模板的、...
SpringBoot与Thymeleaf模板引擎的整合是现代Java Web开发中的常见实践,它为开发者提供了便捷的MVC(Model-View-Controller)框架支持,...无论是小型项目还是大型企业级应用,这种组合都能提供稳定且高效的解决方案。