application.propertieshtml
application.ymljava
推荐第二种,递进关系明显,有层次感,配置写得少mysql
mybatis的依赖,官方地址 https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starterweb
添加mybatis的依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency>
修改application.yml的文件spring
server:
port: 8086
spring:
datasource:
diver-class-name: com.test
url: jdbc:mysql://localhost:3306/mysql
username: root
password: root
mybatis:
type-aliases-package: com.test
mapper-locations: classpath:com/test/*.xml
建立实体类sql
建立service接口和实现类数据库
@Component
public class Dept{ private Long deptno; private String dname; private String loc; // get set 方法 }
建立Mapper接口mybatis
public interface DeptService{ List<Dept> selectAll(); }
建立Mapper映射文件app
public interface DeptService{ List<Dept> selectAll(); } @Service public class DeptServiceImpl implements DeptService{ @Autowired private DeptMapper deptMapper; public void setDeptMapper(DeptMapper deptMapper){ this.deptMapper = deptMapper; } // 查询功能暂时不须要 @ransactional public List<Dept> selectAll(){ return deptMapper.selectAll(); } }
建立Controller处理器
@RestController public class DeptController{ @Autowired private DeptService public void setDeptService(DeptService deptService){ this.deptService = deptService; } @RequeestMapping("/show") public List<Dept> Show(){ return deptService.selectAll(); } }
添加扫描注解
@SpringBootApplication @MapperScan("com.test.mapper") public class LianmaiApplication { public static void main(String[] args) { SpringApplication.run(LianmaiApplication.class, args); } }
添加依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependenyc>
修改application.yml文件
# 链接池配置信息
# 初始化大小: 最大, 最小
druid:
initial-size: 5
min-idle: 5
max-active: 20
# 配置获取链接等待超时的时间
max-wait: 60000
# 配置间隔多久才进行一次检测, 检测须要关闭的空闲链接, 单位是ms
time-between-eviction-runs-millis: 60000
# 配置一个链接在池子中最小生存的时间, 单位是ms
min-evictable-idle-time-millis: 3000000
validation-query: select 1
test-while-idle: true
test-on-borrow: false
test-on-return: false
# 打开PSCache, 而且指定每一个链接上PSCache的大小
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
filter: satat,wall,slf4j
connection-properties: druid.stat.mergesql\=true;druid.stat.slowsqlmillis\=5000
# 配置DruidStatFilter
web-stat-filter:
enabled: true
url-pattern: "/*"
exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"
# 配置DruidStatViewServlet
stat-view-servlet:
url-pattern: "/druid/*"
# IP白名单
allow: 127.0.0.1,192.168.163.1
# IP黑名单(同时存在于白名单时, deny 优先于 allow)
deny: 192.168.1.188
reset-enable: false
# 登陆名
login-username: admin
# 登陆密码
login-password: 123456
mybatis:
mapper-locations: classpath:com/test/*.xml
运行期间: 若是抛出错误,java.lang.NoClassDefFoundErrror: org/springframework/boot/bind/RelaxedPropertyResolver
解决方案,改成使用继承的方式实现SpringBoot启动器的依赖,再也不使用依赖的方式
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> </parent>
druid的登录页面 http://localhost:8080/druid
logback是log4j的改良版本,取代缘由:实现更快,更充分的测试,更充分的文档
logback.xml
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!--设置变量LOG_HOME,用于指定log日志文件存放的目录--> <property name="LOG_NAME" value="${catalina.base}/logs/"> <!--控制台输出--> <appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </layout> </appender> <appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBaseRollingPolicy"> <fileNamePattern>${LOG_HOME}/server.%d{yyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <patterm>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern> </layout> <triggeingPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> </property> <root level="info"> <appender-ref ref="Stdout"/> <appender-ref ref="RollingFile"/> </root> <logger name="com.test.mapper" level="debug"></logger> <!-- 日志异步到数据库 --> <appender name="DB" class="ch.qos.logback.classic.db.DBAppender"> <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource"> <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource"> <driverClasss>com.mysql.jdbc.Driver</driverClass> <url>jdbc:mysql://127.0.0.1:3306/test</url> <user>root</user> <password>root</password> </dataSource> </connectionSource> </appender> </configuration>
SpringBoot整合thymeleaf
thymelea的效率高于jsp
引入依赖,编写模板