springboot知识点总结

springboot的启动方式

第一种:直接main方法启动Application
第二种:通过maven插件来启动

mvn spring-boot:run

第三种 打jar包来访问
java -jar tx_demo2-0.0.1-SNAPSHOT.jar

第四种 通过docker容器虚拟化运行

创建DockerFile文件

FROM  openjdk:8-jdk-alpine
ARG  JAR_FILE
COPY  ${JAR_FILE}  app.jar
EXPOSE  10001
ENTRYPOINT  ["java","-jar","/app.jar"]
tx_demo2.jar和DockerFile在同一个路径构建镜像

docker build --build-arg JAR_FILE=tx_demo2.jar -t tx_demo2:1.0 .
docker run -p 8080:8080 tx_demo2:1.0 

SpringBoot的属性注入

  • @Value注解。这种方式虽然可行,但是不够强大,因为它只能注入基本类型值。
  • @ConfigurationProperties(prefix = “jdbc”)
    public class JdbcProperties {

@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {

@Bean
public DataSource dataSource(JdbcProperties jdbc) {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(jdbc.getUrl());
dataSource.setDriverClassName(jdbc.getDriverClassName());
dataSource.setUsername(jdbc.getUsername());
dataSource.setPassword(jdbc.getPassword());
return dataSource;
}
}

更优雅的注入
事实上,如果一段属性只有一个Bean需要使用,我们无需将其注入到一个类(JdbcProperties)中。而是直接在需要的地方声明即可:

@Configuration
public class JdbcConfig {

@Bean
// 声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource中
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
    DruidDataSource dataSource = new DruidDataSource();
    return dataSource;
}

}
我们直接把@ConfigurationProperties(prefix = “jdbc”)声明在需要使用的@Bean的方法上,然后SpringBoot就会自动调用这个Bean(此处是DataSource)的set方法,然后完成注入。使用的前提是:该类必须有对应属性的set方法!

自动配置

SpringBoot为我们提供了默认配置,而默认配置生效的条件一般有两个:

你引入了相关依赖

你自己没有配置

1)启动器

所以,我们如果不想配置,只需要引入依赖即可,而依赖版本我们也不用操心,因为只要引入了SpringBoot提供的stater(启动器),就会自动管理依赖及版本了。

因此,玩SpringBoot的第一件事情,就是找启动器,SpringBoot提供了大量的默认启动器,

2)全局配置

另外,SpringBoot的默认配置,都会读取默认属性,而这些属性可以通过自定义application.properties文件来进行覆盖。这样虽然使用的还是默认配置,但是配置中的值改成了我们自定义的。

因此,玩SpringBoot的第二件事情,就是通过application.properties来覆盖默认属性值,形成自定义配置。我们需要知道SpringBoot的默认属性key,非常多

你可能感兴趣的:(#,springBoot,java,spring,开发语言)