以往写web都是以大量的xml文件开始,这次课堂上老师要求用springboot完成项目。刚开始接触时,对于已经习惯使用xml配置的人确实很不习惯,但是研究久了,发现springboot在配置方面确实非常方便,项目搭建相当迅速。但是有的网络上找资料很不方便,因此,这里对自己在使用中查到的一些用法做以总结。
一、基本框架搭建
新建maven(gradle)项目文件,在pom文件中添加springboot的项目引用。spring.io上提供了一个例子:http://spring.io/guides/gs/spring-boot/。
pom文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>gs-spring-boot</artifactId>
<version>0.1.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
snapshot版本和release版本的依赖不同,简单点的配置是release版本。
创建HelloWorldController,用以路径分发
package hello;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
}
然后新建Application主类,运行main函数,便可以启动springboot默认服务器完成配置
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplication 标签代表了 @Configuration, @EnableAutoConfiguration, @ComponentScan 这3个标签。
运行以后,访问localhost:8080就能得到index函数返回的数据。
application.yml(.properties)中可配置端口和根路径
server:
context-path: /
port: 8080
二、静态资源
springboot默认的静态资源路径是 :
/META-INF/resources/
/resources/
/static/
/public/
当然也可以自己配置,如下:
@Configuration
@ComponentScan
public class MyConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// registry.addResourceHandler("/js/**")
// .addResourceLocations("classpath:/js/");
// registry.addResourceHandler("/css/**")
// .addResourceLocations("classpath:/css/");
// registry.addResourceHandler("/WEB-INF/resources/image/**")
// .addResourceLocations("classpath:/image/");
// registry.addResourceHandler("/static/**")
// .addResourceLocations("classpath:/html/");
// registry.addResourceHandler("/**").addResourceLocations("/");
}
}
addResourceHandler("/js/**")拦截/js/**的访问
addResourceLocations("classpath:/js/");定义到classpath:/js/路径下
三、链接池
使用druid连接池,pom中添加:
<!-- mysql 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.5</version>
</dependency>
然后在application.yml(.properties)中配置即可
spring:
datasource:
name: sd
url: jdbc:mysql://***.***.***.***/3306/sd?useUnicode=true&characterEncoding=utf8
username: *
password: *
# 使用druid数据源
# 在此处配置即可
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
四、mybatis以及mapper插件(mybatis-plus)、分页插件(pagehelper)
同样,先添加pom
<!-- page helper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>RELEASE</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>1.4.9</version>
</dependency>
创建mybatis-plus的mapper生成函数
package Generator;
import com.baomidou.mybatisplus.annotations.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.ConfigGenerator;
public class EntityGenerator {
public static void main(String[] args) {
ConfigGenerator cg = new ConfigGenerator();
// 配置 MySQL 连接
cg.setDbDriverName("com.mysql.jdbc.Driver");
cg.setDbUser("*");
cg.setDbPassword("*");
cg.setDbUrl("jdbc:mysql://***.***.***.***:3306/sd?characterEncoding=utf8");
// 配置包名
cg.setEntityPackage("com.attendance.model");
cg.setMapperPackage("com.attendance.mapper");
cg.setServicePackage("com.attendance.service");
cg.setXmlPackage("com.attendance.mapper.xml");
cg.setServiceImplPackage("com.attendance.service.impl");
// 配置表主键策略
cg.setIdType(IdType.AUTO);
// 配置保存路径
cg.setSaveDir("E:\\Users\\OPTIPLEX\\Documents\\Codes\\Attendency\\src\\main\\java\\");
// 其他参数请根据上面的参数说明自行配置,当所有配置完善后,运行AutoGenerator.run()方法生成Code
// 生成代码
AutoGenerator.run(cg);
}
}
函数执行以后可以生成相应的service/mapper/bean等等类
通过配置MybatisPlusConfig就可以使用通用单表mapper、service函数,或者不经过配置自定义sql方法。具体内容见mybatis-plus官网。pagehelper同理。
五、logback配置
application.yml文件中添加
logging:
config: classpath:logback.xml
path: /Users/attendancy/logs
level: debug
resources下创建logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 默认配置 -->
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="DEBUG"/>
<logger name="com.ibatis" level="DEBUG" />
<!--<logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" />-->
<!--<logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" />-->
<!--<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" />-->
<!--<logger name="java.sql.Connection" level="DEBUG" />-->
<!--<logger name="java.sql.Statement" level="DEBUG" />-->
<!--<logger name="java.sql.PreparedStatement" level="DEBUG" />-->
</configuration>
其他更多配置使用的使用再做记录。。。。。。。。