SpringBoot整合MVC

核心配置文件

官方地址 https://docs.spring.io/spring-boot/docs/2.1.18.RELEASE/reference/html/common-application-properties.htmlcss

两种经常使用格式

application.propertieshtml

application.ymljava

推荐第二种,递进关系明显,有层次感,配置写得少mysql

SpringBoot项目结构

SpringBoot整合MyBatis,SpringMVC

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);
    }
}

SpringBoot整合Druid

添加依赖

<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

SpringBoot整合logback日志记录

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

引入依赖,编写模板

相关文章
相关标签/搜索