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 的属性值,来根据不同的开发环境,指定使用哪一个配置文件。
读取Xml 的配置文件
@ImportResource ({"classpath:文件名.xml", " "}) 一般作用于配置类上(有@Congifuration注解的类)
下面是一些常用的配置属性
server.context-path=*.html 修改进入DispatcherServlet(前端控制器,就是浏览器的url后缀)的规则为:*.html
#springboot版本在2.0以后使用
server.context.path=*.html 属性时 要添加
spring.mvc.pathmatch.use-suffix-pattern = true 属性才会生效
server.port=8080 设置tomcat的端口号
#设置日志级别
logging.level.org.springframework(这里填写的是包名的路径) = DEBUG
#数据库配置
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