El método estático hace referencia a una variable no estática

1. Descripción de requisitos:

Llame a la conexión de la base de datos en el método estático y los parámetros deben obtenerse del archivo de configuración yml

2. Análisis de puntos dudosos

Según la referencia de anotación convencional @Value, se encontró que la variable siempre estaba vacía y no se podían obtener los datos, luego se encontró que había un problema con la referencia de la variable.

Tres.Resolver

1. @PostConstruct Esta anotación se utiliza para modificar un método void() no estático. El método modificado por @PostConstruct se ejecutará cuando el servidor cargue el Servlet y el servidor solo lo ejecutará una vez. PostConstruct se ejecuta después del constructor y antes del método init().
2. Por lo general, usaremos @PostConstruct para anotar el orden de ejecución del método en toda la inicialización de Bean en el marco Spring: Constructor (método de construcción) -> @Autowired (inyección de dependencia) -> @PostConstruct (método anotado)

@Component
public class ProcUtils {
	
	@Value("${spring.datasource.url}")
	private String url;
	private static String dbUrl;

	@Value("${spring.datasource.username}")
	private String username;
	private static String dbName;
	
	@Value("${spring.datasource.password}")
	private String password;
	private static String dbPassword;
	
	@Value("${spring.datasource.driver}")
	private String driver;
	private static String dbDriver;

	private static Connection connection = null;

	public static Connection getConnection(){
		try {
			Class.forName(dbDriver);
			connection = DriverManager.getConnection (dbUrl,dbName,dbPassword);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return connection;
	}

	@PostConstruct
	public void setProfile() {
		dbUrl = this.url;
		dbName = this.username;
		dbPassword = this.password;
		dbDriver = this.driver;
    }
}

Supongo que te gusta

Origin blog.csdn.net/yiye2017zhangmu/article/details/126385599
Recomendado
Clasificación