前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot entity注解_java注解在框架中的应用

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

作者头像
Java架构师必看
发布2022-08-26 08:57:59
6990
发布2022-08-26 08:57:59
举报
文章被收录于专栏:Java架构师必看

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说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。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-252,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.PropertySource注解加载指定的属性文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档