当前位置:   article > 正文

@Value和@Environment的注入一直为null_environment注入后为null

environment注入后为null

要想使它生效必须要有的条件

  1. 不能作用于static final 修饰的属性
  2. 不能作用于非注册类,即用@Component及其衍生类注解的类
  3. 类的使用只能通过依赖注入的方式,不能用new的方式

 在pojo类

Pojo类

@Data
@Component
//将这个类加载到Ioc容器中
public class DateModule {
 

    //读取的要素
   
@Value(value = "${spring.datasource.driver-class-name}")
   
private  String provider;
   
@Value(value = "${spring.datasource.url}")
   
private  String dbUrl;
   
@Value(value = "${spring.datasource.username}")
   
private  String dbUser;
   
@Value(value = "${spring.datasource.password}")
   
private  String dbPassword;

Test单元测试

@SpringBootTest
public class DemoApplicationTests {

   
@Autowired
   
private DateModule dateModule;

   @Test
   
public void JdbcTest() throws ClassNotFoundException, SQLException {
        //通过list来读取
       
List<Ins_cost_JDBC> list = new ArrayList<>();
       
//1. 注册驱动,这个时候再读取就不是空了
       
Class.forName(dateModule.getProvider());
       
//2. 获取链接
       
Connection conn = DriverManager.getConnection(dateModule.getDbUrl(), dateModule.getDbUser(), dateModule.getDbPassword());

关于@Environment一直为null

我做了下面的测试,当我在

@SpringTest类中的时候使用

@Autowired
private Environment env;
System.out.println(env);

这个时候的env不是null,

但是我在pojo类中使用env,就一直为null

所以我使用@Value的方式来获取配置类中的值了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/939277
推荐阅读
相关标签
  

闽ICP备14008679号