SpringBoot基本使用-打包/热部署/读取配置/多环境切换/日志/集成Thymeleaf/集成Mybatis

1、项目结构

src
	--main
		--java
		--resources
			--static		//静态资源目录
			--templates		//模板页面目录,如:jsp ,ftl
			--application.properties/application.yml	//默认配置文件

在这里插入图片描述

2、package打包

2.1、导入插件pom.xml

	<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2.2、打包

打包命令会把jar打包到target目录
在这里插入图片描述
结果如下:
在这里插入图片描述

2.3、运行

java -jar xxx.jar

在这里插入图片描述

3、热部署

3.1、导入依赖

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
 </dependency>

3.2、设置idea自动编译

在这里插入图片描述

4、热部署读取配置

4.1、使用@Value标签

配置文件application.yml

user:
  username: huahua
  age: 22
  sex: 0

绑定配置文件的配置类

@Component
public class User {

    //@Value :从配置文件中取值 
    @Value("${user.username}")
    private String username ;

    @Value("${user.age}")
    private String age;

4.2、使用@ConfigurationProperties

这个标签会自动的根据前缀从配置中过滤出配置项目,然后根据当前对象的列名进行匹配,自动赋值。

配置文件application.yml

user:
  username: huahua
  age: 22
  sex: 0

绑定配置的对象

@Component
@ConfigurationProperties(prefix = "user")
public class User {
    private String username;
    private int age;

5 、多环境切换

5.1、方式一

单个application.yml配置文件

spring:
  profiles:
    active: test	#激活(选择)环境test
---
spring:
  profiles: dev		#指定环境名字dev
server:
  port: 9999
---
spring:
  profiles: test	#指定环境名字test
server:
  port: 8888

5.2、方式二

通过配置文件的名字来识别环境,主配置中,active中激活的哪个名字,就使用哪个配置

主配置
application.yml

spring:
  profiles:
    active: test 
    #根据文件名字配置 application-dev.properties

多环境1:application-dev.yml

server:
  port: 9999

多环境2:application-test.yml

server:
  port: 8888

6 、日志

6.1、基本使用

private Logger logger = LoggerFactory.getLogger(MySpringBootTest.class);

...
 logger.error("我是一个error日志.....");
 logger.warn("我是一个warn日志.....");
 logger.info("我是一个info日志.....");

logger.debug("我是一个debug日志.....");
logger.trace("我是一个trace日志.....");

6.2、配置日志

#logging.level.cn.itsource=error
#logging.file=my.txt
#logging.file.max-size=1KB
#logging.pattern.console="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"

6.3、指定配置文件配置logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--

debug="true"  :开启系统内部调试信息
scan="true" scanPeriod="1 seconds" :每隔1秒扫描配置文件,重新加载

-->
<configuration debug="false" scan="true" scanPeriod="100 seconds">
    <!-- 日志格式
    定义一个变量
    -->
    <property name="CONSOLE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n"/>

    <!--ConsoleAppender 用于在屏幕上输出日志-->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <!--定义控制台输出格式-->
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>logs/springboot.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--
                springboot-2020年2月11日-0.log.gz
                springboot-2020年2月11日-1.log.gz
                springboot-2020年2月11日-2.log.gz

                springboot-2020年2月12日-0.log.gz
                springboot-2020年2月12日-1.log.gz
                springboot-2020年2月12日-2.log.gz
            -->
            <fileNamePattern>logs/springboot-%d{yyyyMMdd}-%i.log.gz</fileNamePattern>
            <maxFileSize>1KB</maxFileSize>
            <maxHistory>30</maxHistory>
            <!--总上限大小-->
            <totalSizeCap>5GB</totalSizeCap>
        </rollingPolicy>
        <!--定义控制台输出格式-->
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <!-- 设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>

    </appender>

    <!--root是默认的logger 这里设定输出级别是debug-->
    <root level="info">
        <!--定义了两个appender,日志会通过往这两个appender里面写-->
        <appender-ref ref="stdout"/>
        <!--        <appender-ref ref="file"/>-->
    </root>

    <!--如果没有设置 additivity="false" ,就会导致一条日志在控制台输出两次的情况-->
    <!--additivity表示要不要使用rootLogger配置的appender进行输出-->
    <logger name="vivi.com" level="trace" additivity="false">
        <appender-ref ref="stdout"/>
        <!--        <appender-ref ref="file"/>-->
    </logger>


</configuration>

7、集成Thymeleaf

7.1、导入依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

7.2、创建模板 resources/templates/hello.html

<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>成功!</h1>
    <!--使用语法th:text 将div里面的文本内容设置为 -->

    <div th:text="${msg}">这是显示欢迎信息</div>
</body>
</html>

7.3、controller

@Controller
public class HelloController {
    @RequestMapping("/index")
    public String hello(Model model){
        model.addAttribute("msg","c测试" );
        return "hello";
    }
}

8、集成Mybatis

8.1、导入依赖

   <!-- mysql 数据库驱动. -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

8.2、配置application.yml

spring:
  profiles:
    active: test
    #配置DataSource
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql:///test
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource  #使用哪个连接池
#配置Mybatis
mybatis:
  mapper-locations: classpath:com/vivi/mapper/*Mapper.xml
  #type-aliases-package: com.vivi.domain别名,可配置
  #mapeer映射器在配置类  

8.3、开启事物@Transactional

@Service
@Transactional
public class DepartmentServiceImpl implements DepartmentService {
    @Autowired
    private DepartmentMapper departmentMapper;
    @Override
    @Transactional(readOnly = true)
    public List<Department> findAll() {
        return departmentMapper.findAll();
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值