SpringBoot2.(配置文件)

yml配置文件

Spring Boot使用一个全局的配置文件(配置文件名是固定的)
application.properties 属性文件格式,内容为键值对

application.yml:
在这里插入图片描述
yml是YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心

yml基本语法:

  语法结构:key:空格 value
  以此来表示一对键值对(空格不能省略);以空格的缩进来控制层级关系,
  只要是左边对齐的一列数据都是同一个层级的。

值的写法:
字面量:普通的值[数字,布尔值,字符串]
K: V
字面量直接写在后面就可以,字符串默认不用加上双引号或者单引号;

user:
  name: "马振强"
  age: 21
  hobby:
    -睡觉
    -吃饭

数组(List,Set)(用-值表示数组中的一个元素)语法示例如下:

animal: 
 - cat 
 - dog 
 - pig

行内写法:

animal: [cat,dog,pig]

使用@ConfigurationProperties注解标签将配置文件中的内容映射到类中的属性.

@ConfigurationProperties(prefix = "user" )

springBoot自动配置

Springboot实现自动装配的核心仍然是使用注解标签,
@SpringBootApplication是springboot

  核心注解,其中包含
    @SpringBootConfiguration,
    @EnableAutoConfiguration,
    @ComponentScan.

@ComponentScan
     它默认扫描的是与该类同级的类或者同级包下的所有类.
@SpringBootConfiguration
     通过源码得知它是一个@Configuration,相当于之前的配置文件功能.
@EnableAutoConfiguration
     是这里最重要的注解,它实现了对Spring Boot应用自动装配的功能。
@EnableAutoConfiguration
     是利用SpringFactoriesLoader机制加载自动装配配置的,它的配置数据在META-INF/spring.factories中,我们打开spring-boot-autoconfigure jar中的该文件,发现对应着许多个XXXAutoConfiguration配置类.
@Configuration
     加入@Configuration 注解,表明这就是一个配置类。有一个myBean()的方法并用@Bean 进行注释,返回一个MyBean()的实例,表明这个方法是需要被Spring进行管理的bean。@Bean 如果不指定名称的话,默认使用myBean名称,也就是小写的名称。
@Bean
     相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。

SpringBoot集成JDBC

数据源配置
在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式。
首先,为了连接数据库需要引入jdbc支持,在pom.xml中引入如下配置:

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

在application.yml中配置数据源信息

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/team?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: wang666
    type: com.alibaba.druid.pool.DruidDataSource
    initialSize: 5
    minIdle: 5
    maxActive: 20
    filters: stat

Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用。

SpringBoot整合阿里数据源

导入阿里数据源jar

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

在yml文件中注册阿里数据库连接池

type: com.alibaba.druid.pool.DruidDataSource
filters: stat
initialSize: 5 初始化时建立物理连接的个数
minIdle: 1 最小连接池数量
maxActive: 20最大连接池数量

添加工具类
Sql监控
http://localhost:9999/druid/login.html

SpringBoot集成mybatis

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

在application.yml中配置数据源信息

#mybatis
mybatis:
  type-aliases-package: com.ffyc.springBoot.demo.model
  mapper-locations: classpath:mapper/*Mapper.xml
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: true

日志打印

#日志打印
logging:
  level:
    com.ffyc.springBoot.demo.dao: trace
  file:
    name: E:\\log\\log.log

效果

然后就可以写代码来测试
model类的User:

public class User {
    private Integer id;
    private String name;
    private Integer operatePerson;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getOperatePerson() {
        return operatePerson;
    }

    public void setOperatePerson(Integer operatePerson) {
        this.operatePerson = operatePerson;
    }
}

dao类

@Repository
public interface UserDao {
    void insertSave();
}

service类

@Service
@Transactional
public class UserService {

    @Autowired
    UserDao userDao;

    public void saveNew(){
        userDao.insertSave();
    }
}

controller类(两条sql,验证事务完整性)

@RestController
@RequestMapping(path = "/hello")
public class HelloWorldController {

    @Autowired
    UserService userService;

    @RequestMapping(path = "/test")
    public String test(){
        System.out.println("helloWord");
        return "hello world";
    }

    @RequestMapping(path = "/save")
    public String save(){
        userService.saveNew();
        return "保存成功";
    }
}

config类,添加sql监控

import javax.sql.DataSource;

import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.alibaba.druid.pool.DruidDataSource;


@Configuration
public class DruidDataSourceConfig {

	    @Bean
		@ConfigurationProperties(prefix = "spring.datasource")
	    public DataSource druid() {
	        return new DruidDataSource();
	    }

	@Bean
	public ServletRegistrationBean druidStatViewServlet() {
		//ServletRegistrationBean提供类的进行注册
		ServletRegistrationBean servletRegistrationBean =
				new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
		//添加初始化参数:initParams
		//白名单:
		servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
		//IP黑名单(同时存在时,deny优先于allow)
		//如果满足deny,就提示:sorry,you are not permitted to view this page
		servletRegistrationBean.addInitParameter("deny", "192.168.1.73");
		//登录查看信息的账号和密码
		servletRegistrationBean.addInitParameter("loginUsername", "admin");
		servletRegistrationBean.addInitParameter("loginPassword", "123456");
		servletRegistrationBean.addInitParameter("resetEnable", "false");
		return servletRegistrationBean;
	}


	@Bean
	public FilterRegistrationBean druidStatFilter() {
		FilterRegistrationBean filterRegistrationBean =
				new FilterRegistrationBean(new WebStatFilter());
		//添加过滤规则
		filterRegistrationBean.addUrlPatterns("/*");
		//添加需要忽略的格式信息
		filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif," +
				"*.jpg,*.png, *.css,*.ico,/druid/*");
		return filterRegistrationBean;

	}
	 
}

然后可以测试 点击链接,输入账号密码(admin,111)可以修改
链接:http://localhost:9999/druid/login.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值