Aquí hay una razón por la cual la primavera no puede inyectar variables estáticas. Los detalles específicos son los siguientes:
La inyección de dependencia de la primavera es un método establecido por dependencia
El método establecer es un método de objeto normal
Las variables estáticas son atributos de las clases
@AUTOWIREDIRDED STICT JDBCTEMPLATE JDBCTEMPLATE;
Solo mirando este proceso de inyección, no hay error, pero el próximo jdbctemplate.query () informará un error de puntero nulo.
PD: Spring inyecta variables estáticas
Hoy encontré un problema. Una de mis clases de herramientas proporciona varios métodos estáticos. Los métodos estáticos requieren otra instancia de clase para proporcionar procesamiento, por lo que escribí este código:
Clase util {private static xxx xxx; xxx = beanutil.getBean ("xxx"); Public static void Method () {xxx.func (); } Public static void Method () {xxx.func (); }}Esta es la forma de usar GetBean para obtener una instancia xxx, pero otros dicen que este método no es bueno y quiere inyectarlo.
¿Pero cómo inyectar static xxx?
Busqué muchas declaraciones en línea, pero en realidad fue muy simple:
Clase util {private static xxx xxx; public void setxxx (xxx xxx) {this.xxx = xxx; } public void getxxx () {return xxx; } public static void Method1 () {xxx.func1 (); } public static void Method2 () {xxx.func2 (); }}Simplemente configure la inyección en XML normalmente.
<bean value = "test"> <Property Value = "xxx" ref = "xxx"/> </bean>
Tenga en cuenta aquí que los métodos Getter y Setter generados automáticamente tendrán clasificatorios estáticos y deben eliminarse antes de que se puedan hacer.