Cómo inyectar frijoles en las clases ordinarias de primavera
Un problema con la inyección Spring es que las clases ordinarias no pueden obtener instancias de Bean en archivos Bean. Es decir, si está en el entorno Servlet de la Web, se puede pasar a través de WebApplicationContextUtils, pero si es una clase normal, será difícil de manejar. Esto requiere
un poco de habilidad de diseño. A continuación se muestra un ejemplo de una clase estática que utiliza instancias en un archivo bean.
1. Si está configurado para inyección en el archivo de configuración:
Clase pública UserinfoUtil
{
Información de usuario IUserInfo privada
p> p>
Información de UserinfoUtil estática privada;
conjunto de anulación pública userInfo(IUserInfo userInfo)
{
this.userInfo = userInfo
}
Public void init()
{
información = esta
información de usuario = esta información de usuario;
p>}
public static int addUserLoginCnt(número de teléfono de cadena)
{
información de retorno . ;
p>}
}
Configuración del bean correspondiente:
Configuración del archivo bean correspondiente
ltbean id = " userinfoUtil " class = " com . Huawei . aimi . portal web . service . userinfoUtil " init-method = " init " gt;
ltproperty name = " userInfo " ref = " userInfo "/ gt;
lt/bean gt;
2. Inyectar a través de comentarios:
Clase pública UserinfoUtil
{
@Línea de conexión automática
IUserInfo privada userInfo
Información de UserinfoUtil estática privada;
public void set userInfo(IUserInfo userInfo)
{
this.userInfo = userInfo
}
@PostConstruct
Public void init()
{
info = esta
info . userinfo = this . userinfo;
}
public static int addUserLoginCnt(cadena número de teléfono)
{
información de devolución . información de usuario . adduserlogincnt(número de teléfono);
}
}