自学Springboot第一篇(快速入门)

SpringBoot的核心入口类和@SpringBootApplication

Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的Java应用程序的入口方法。

@SpringBootApplication 注解是SpringBoot的核心注解

它其实是一个组合注解:@SpringBootConfiguration (替代@Configuration) + @EnableAutoConfiguration  +  @ComponentScan

@EnableAutoConfiguration 注解是启用自动配置,该注解会使SpringBoot根据项目中依赖的jar包自动配置项目的配置项,还可以关闭某一项的自动配置从而自己手动配置。

比如:我们不想自动配置Redis,想手动配置 @SpringBootApplication(exclude = {RedisAutoConfiguration.class })

@ComponentScan:默认扫描@SpringBootApplication所在类的同级目录以及它的子目录中的所有注解。

快速入门示例

 1.设置spring boot的parent (pom.xml文件)

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>1.5.9.RELEASE</version>
</parent>

 2. 导入spring boot的web支持

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

3. 编写第一个Spring Boot的应用

@RestController   //这个注解是个组合注解,等于 @Controller + @ResponseBody

@SpringBootApplication

public class HelloApplication { 

    @GetMapping("hello")

        public String hello(){

        return "hello world";

    }

    public static void main(String[] args) {

        SpringApplication.run(HelloApplication.class, args);

    }

}

4. 运行main方法之后,直接在浏览器访问 127.0.0.1:8080/hello

 

全局配置文件

Spring Boot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到resources下。

但是在一般在实际开发中,由于在每个开发环境中(开发、测试、生产)使用的配置会有一些细微的不同,会定义多个.properties文件,根据application.properties文件中的  spring.profiles.active = dev 或者 test 或者 prod 的属性值,来根据不同的开发环境,指定使用哪一个配置文件。

自学Springboot第一篇(快速入门)

下面是一些常用的配置属性

server.context-path=*.html 修改进入DispatcherServlet(前端控制器,就是浏览器的url后缀)的规则为:*.html
server.port=8080 设置tomcat的端口号

#数据库配置
spring.datasource.druid.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.druid.url=jdbc:mariadb://11.111.1.111:3306/hsy
spring.datasource.druid.username=root
spring.datasource.druid.password=root

# druid 数据库连接池配置(需要在pom.xml文件中导入druid-spring-boot-starter的依赖)
# 初始化连接数
spring.datasource.druid.initial-size=5
# 最小连接数
spring.datasource.druid.min-idle=5
# 最大连接数
spring.datasource.druid.max-active=20
# 获取连接时最大等待时间,单位毫秒
spring.datasource.druid.max-wait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.druid.time-between-eviction-runs-millis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.druid.min-evictable-idle-time-millis=300000
# 用来检测连接是否有效的SQL
spring.datasource.druid.validation-query=select 1
# 当空闲时,执行validationQuery检测连接是否有效
spring.datasource.druid.test-while-idle=true
# 申请连接时执行validationQuery检测连接是否有效,true会降低性能
spring.datasource.druid.test-on-borrow=false
# 归还连接时执行validationQuery检测连接是否有效,true会降低性能
spring.datasource.druid.test-on-return=false
# 是否开启PSCache,支持Oracle、SQL Server、DB2、MySQL5.5+(含5.5)
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.druid.filter.stat.enabled=true
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录,默认3秒
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.merge-sql=true

# mybatis Mapper
mybatis.mapper-locations=classpath:mapper/**/*.xml

#去除Json返回时的null值
spring.jackson.default-property-inclusion=non_null
# 日志配置
logging.config=classpath:config/log4j2.xml

# jpush配置
jpush.appKey=5198487c595b7726190a928a
jpush.masterSecret=b863ac3e8842e7f3ce36b611

#token拦截器配置
video.excludePathPatterns=/deviceMgmt/*/equActivate

#ftp 配置
ftp.host=11.111.1.111
ftp.user-name=docker_ftp
ftp.password=123123