自学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 的属性值,来根据不同的开发环境,指定使用哪一个配置文件。
下面是一些常用的配置属性
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