Springboot学习笔记
- 使用jar包发布,不需要使用
war
包依赖于tomcat
- 使用
properties
或者yml
配置文件进行配置,默认扫描全局下的application
- 使用注解风格开发,极简化代码
这里讲一点重要配置
springboot
一般我们可以使用idea自动创建,或者登陆此网站下载springboot
项目然后导入,也可以通过maven导入springboot
依赖进行创建
<!--
springboot主要依赖
这里指向spring的parent,
里面替我们管理了后续的所有jar包版本,
并且集成了大量框架,包括spring全家桶,log4j等
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/>
</parent>
<!-- 之后导入jar包不需要再加版本号 -->
<!-- 这个是springboot的data-jpa包,主要作用于持久层的框架 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--
这个是springboot的web包,是springweb开发必备包
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--
这个是springboot必备包,主要用于启动spring项目
-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!--
这个是springboot必备包,集成maven的插件,可以通过maven部署
-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- 热加载部署
Springboot
,这样可以有效的让我们测试代码,我们只需要修改springboot
项目中的文件,springboot
就会替我们自动重启项目
<!-- 先在Pom里配置好热部署关键jar包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!-- spring热部署插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.8.RELEASE</version>
<scope>provided</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
关于热部署,idea用户需要在File-》setting-》build-》Compiler下勾选
Build project automatically
,应用后关闭。并通过Ctrl+Shift+Alit+/进入register然后勾选compiler.automake.allow.when.app.running
即可开启热部署。
关于springboot的部署
-
springboot的部署主要有2种方式
-
通过命令行工具使用maven进行部署
# 先要进入项目的pom.xml同级目录 mvn spring-boot:run #就可进行springboot的部署
-
通过jar包形式部署
#springboot可以被导出成jar包,这里以courses-0.0.1-SNAPSHOT.jar为例 java -jar courses-0.0.1-SNAPSHOT.jar #进行springboot的部署
-
springboot的重要注解
-
@MapperScan
用来指定扫描Mapper接口的包位置 -
@ComponentScan
用来指定扫描注解的包位置 -
@SpringBootApplication
springboot的启动类,代表全局应用 -
@RestController
类级别注解,修饰controller类,具有把响应参数转换为json字符的功能,相当于@Controller
和@ResponseBody
两个注解的作用 -
@EnableAutoConfiguration
通常要进行某个模块的测试时,可以在那个类上用这个注解,具有和@SpringBootApplication
相同的作用 -
PropertySource
用来加载指定的properties文件,可以同时加载多个 -
@ConfigurationProperties
用来加载application.properties
或者application.yml
全局配置文件的注解,可以指定perfix前缀,对象字段会根据name自动注入属性 -
@Configuration
类级别注解,用来指定当前类为spring的配置类,方法上用Bean
注解,并返回一个对象,相当于spring的xml注入IOC,方法名为id
这里我贴出我平时过的最多的全局配置文件
server:
port: 8080
tomcat:
uri-encoding: utf-8
mybatis:
type-aliases-package: com.shaw.demo.courses.pojo
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true #开启驼峰命名规则
lazy-loading-enabled: true #开启延迟加载
cache-enabled: true #开启二级缓存
aggressive-lazy-loading: true #开启按需加载
spring:
datasource:
url: jdbc:mysql://localhost:3306/course?useSSL=true
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
username: root
password: 1111
thymeleaf: #不缓存页面 热加载刷新
cache: false
devtools: #开启热加载
restart:
enabled: true
output:
ansi:
enabled: always #日记输出彩色
mvc:
view:
prefix: /WEB-INF/pages/
suffix: .html
logging:
level:
com.shaw.demo.courses.dao: debug #log4j对持久层进行日记管理
path: F:\\JAVA\\Course\\courses\\logs #log输出地址