springboot entity注解_java注解在框架中的应用

2022-08-26 08:57:59 浏览数 (1)

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说springboot entity注解_java注解在框架中的应用,希望能够帮助大家进步!!!

1.PropertySource注解加载指定的属性文件

Spring框架提供了PropertySource注解,目的是加载指定的属性文件。

代码语言:javascript复制
@Component

@PropertySource(value= {"classpath:config/jdbc-bainuo-dev.properties"},ignoreResourceNotFound=false,encoding="UTF-8",name="jdbc-bainuo-dev.properties",)

public class CustomerDataSourceConfig1  {

private  String url;

    public String getUrl() {

        return url;

    }

    public void setUrl(String url) {

        this.url = url;

    }

    @Override

    public String toString() {

        return "CustomerDataSourceConfig{"  

                "url='"   url   '''  

                '}';

    }

}

只听到从架构师办公室传来架构君的声音:

日暮待情人,维舟绿杨岸。有谁来对上联或下联?

上述的代码目的是加载classpath路径中config文件中的jdbc-bainuo-dev.properties。其中encoding用于指定读取属性文件所使用的编码,ignoreResourceNotFound含义是当指定的配置文件不存在是否报错,比如上文件中指定的加载属性文件是jdbc-bainuo-dev.properties。如果该文件不存在,则ignoreResourceNotFound为true的时候,程序不会报错,默认为false.

value值是设置需要加载的属性文件,可以一次加载多个,name的值我们设置的是jdbc-bainuo-dev.properties。这个值在springboot的环境中必须是唯一的,如果不设置,则值为:“class path resource config/jdbc-bainuo-dev.properteis”.上面我们配置的是classpath:config/jdbc-bainuo-dev.properties,因此Spring发现是classpath开头的,因此最终使用的是Resource的子类ClassPathResource。

如果@ProPertySource中没有设置name值,则name的值的生成规则是:根据value值查找到最终封装的Resource子类,然后调用具体的Resource子类的实例对象中的getDescription方法,其返回值为最终的name值。

代码语言:javascript复制
jdbc-bainuo-dev.properties文件内容如下:

spring.datasource.shareniu.url=shareniu

application.properties文件内容如下:

spring.profiles.active=dev
代码语言:javascript复制
@SpringBootApplication

public class DemoApplication {

public static void main(String[] args) {

	SpringApplication springApplication = new SpringApplication(DemoApplication.class);

	ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args);

	CustomerDataSourceConfig1 customerDataSourceConfig = configurableApplicationContext

	.getBean(CustomerDataSourceConfig1.class);

	System.out.print(customerDataSourceConfig);

}

}

运行上述的代码,程序的输出如下:

CustomerDataSourceConfig{url='null'}

为什么url为null,因为我们没有将spring.datasource.shareniu.url属性值自动注入到CustomerDataSourceConfig1类中的url属性中。

代码语言:javascript复制
@Component

@PropertySource( name="jdbc-bainuo-dev.properties",value= {"classpath:config/jdbc-bainuo-dev.properties"},ignoreResourceNotFound=false,encoding="UTF-8")

public class CustomerDataSourceConfig1  {

	@Value("${spring.datasource.shareniu.url}")

	private  String url;

}

另外我们还可以使用ConfigurationProperties注解

代码语言:javascript复制
@Component
@ConfigurationProperties(prefix = "spring.datasource.shareniu")  
@PropertySource( name="jdbc-bainuo-dev.properties",value= {"classpath:config/jdbc-bainuo-dev.properties"},ignoreResourceNotFound=false,encoding="UTF-8")
public class CustomerDataSourceConfig1  {
   	private  String url;
  }

ignoreUnkownFields:忽略未知的字段。

ignoreInvalidFields:是否忽略验证失败的字段。这个怎么理解?比如我们在配置文件中配置了一具字符串类型的变量,类中的字段是int类型,那肯定会报错,如果我们可以容忍,则需要配置该属性为true,默认值为false。

0 人点赞