标签:直接 local localhost points 读取 需要 生效 类型 art
入门Demo就不写了,我们记一点理论的东西
<!--jdk版本管理-->
<properties>
<java.version>1.8</java.version>
</properties>
<!--已该项目作为父工程,内部对我们常用依赖的版本做了管理,不会出现版本冲突问题-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
?
<dependencies>
<!--web项目的web启动器,会自动引入web相关依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
这个项目已经对我们常用的依赖版本进行了统一管理,我们的项目以这个项目为父工程,就不用担心依赖的版本冲突问题了
先说说以前的通过注解方式的的属性注入
@Configuration
注解:声明我们当前类是一个配置类
@PropertySource
注解:指定属性文件的路径 比如:classpath:jdbc.properties
@Value("${jdbc.url}")
为属性注入值
通过@Bean将 某方法声明为一个注册Bean的方法,Spring会自动调用该方法,将方法的返回值加入Spring容器中。
上面的这种方式只能注入基本数据类型,SpringBoot有自己的一套注入方式,支持复杂类型属性注入
在类上通过@ConfigurationProperties注解声明当前类为属性读取类
@ConfigurationProperties(prefix = "jdbc") 读取属性文件中,前缀为jdbc的值。
在类上定义各个属性,名称必须与属性文件中jdbc.
后面部分一致
需要注意的是,这里我们并没有指定属性文件的地址,所以我们需要把jdbc.properties名称改为application.properties,这是SpringBoot默认读取的属性文件名:
到这里我们就已经把属性文件中的值注入到了类中
@Configuration
@EnableConfigurationProperties(属性读取类.class)
然后通过@Autowired注入该属性读取类 或 通过构造,或通过申明有@Bean的方式自动注入
- @Autowired
private JdbcProperties prop;
?
- private JdbcProperties prop;
public JdbcConfig(Jdbcproperties prop){
this.prop = prop;
}
- @Bean
public Datasource dataSource(JdbcProperties prop){
// ...
当然还有更加优雅的注入方式,如果一段属性只有一个类需要使用,我们不用将这一段属性装载到属性中供消费,
而是直接在需要的地方申明即可:如下所示
@Bean
// 声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource中
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
return dataSource;
}
约定大于配置原则
1:@SpringBootConfiguration,申明当前类为SpringBoot配置类
@SpringBootApplication 2:@EnableConfiguration,默认配置是否生效,取决于我们引入的依赖
3:@ComponentScan,开启注解扫描,扫描对象为启动类所在的包机器子包
通过@SpringBootApplication这个注解了一个大概,@EnableConfiguration就是自动配置的关键所在
在我们的项目中,SpringBoot已经为我们提供了默认的配置,通过我们引入的依赖决定是否生效,如果我们不想使用默认配置,我们可以Application.properties/yml中自定义值进行覆盖默认值
是SpringBoot提供的对应用系统监控的集成功能,可以对系统进行配置查看,相关功能统计等,在Spring Cloud中,主要完成微服务的监控,可以查看微服务之间的数据处理和调用,当出现异常时,可以快速定位问题所在
其功能和Dubbo的监控中心类似,区别就是一个需要专门部署,而这个是存在每一个Boot工程中的
<!--SpringBoot的 Actuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
application.properties
server.port=8888
#actuator端口
management.server.port=9001
#修改访问路径 2.0之前默认是/ 2.0默认是 /actuator 可以通过这个属性值修改
management.endpoints.web.base-path=/monitor
#开放所有页面节点 默认只开启了health、info两个节点
management.endpoints.web.exposure.include=*
#显示健康具体信息 默认不会显示详细信息
management.endpoint.health.show-details=always
#自定义info信息
info.company.username=chen
info.company.age=23
info.company.address=成都市动物园附近
#从pom文件中读取信息
info.project.gruopid=@project.groupId@
info.project.artifactId=@project.artifactId@
info.project.version=@project.version@
info.project.name=@project.name@
然后我们启动项目,准备访问 :http://localhost:9001/monitor/health
对,这个不是我们想看到的页面,有点晚了,明天还上班,明天补上
标签:直接 local localhost points 读取 需要 生效 类型 art
原文地址:https://www.cnblogs.com/msi-chen/p/10947125.html