在application.yml中,配置环境
#---用横线区分环境。profiles标记多环境,active确定启用哪个环境
spring:
profiles:
active: pro
---
#开发环境
spring:
profiles: dev
server:
port: 80
---
#生产环境
spring:
profiles: pro
server:
port: 81
---
#测试环境
spring:
profiles: test
server:
port: 82
另一种写法是,用spring.caonfig.activate.on-profile来替代spring.profiles
#开发
spring:
config:
activate:
on-profile: dev
这是在yaml文件中进行环境配置,如果使用properties文件,就需要定义多个配置文件
例如dev环境的配置,就需要新建一个dev的properties的文件
application-dev.properties是开发环境的配置文件。我们在该文件中配置端口号为80
server.port=80
SpringBoot只会默认加载名为application.properties的配置文件,在application.properties配置文件中设置启用哪个配置文件,配置如下:
spring.profiles.active=pro
properties文件单独放在bak文件夹下
运行package命令时,最好先运行一次clea命令,这样不会让上一次的操作结果影响package命令。
修改idea设置,防止因为编码格式出问题
通过命令行配置环境
设置环境的端口号,打包之后再cmd页面运行相关代码即可
配置优先级
如果maven和SpringBoot都设置了多环境的配置吗,那么应该用pom文件中的配置还是yaml文件中的配置呢?
应该用maven设置的环境配置为主,即在pom文件中设置的环境配置为主,yaml文件需要从pom文件中得到环境配置。
pom文件中的属性只能在pom文件中使用,如果yaml文件要使用pom文件中的属性,需要使用插件
org.apache.maven.plugins
maven-resources-plugin
3.2.0
UTF-8
true
还需要在yml文件中设置属性的引用
SpringBoot 定义了配置文件不同的放置的位置;而放在不同位置的优先级时不同的。
SpringBoot 中4级配置文件放置位置:
1级:classpath:application.yml
2级:classpath:config/application.yml
3级:file :application.yml
4级:file :config/application.yml
说明:级别越高优先级越高
优先级高的配置文件会覆盖低的文件的配置
环境准备,建立一个SpringBoot工程,然后使用boot的项目构建方法
创建接口,实现接口,编写测试类
接口实现类上加上@Service,类中写好实现方法(@Override),
测试类上加@SpringBootTest,使用自动转配注入要测试的类对象(@Autowired),测试方法上加@Test
注意:
这里的引导类所在包必须是测试类所在包及其子包。 例如: 引导类所在包是 com.itheima 测试类所在包是 com.itheima
如果不满足这个要求的话,就需要在使用 @SpringBootTest 注解时,使用 classes 属性指定引导类的字节码对象。如 @SpringBootTest(classes = Springboot07TestApplication.class)
思路,整合Mybatis时,要连接数据库,数据源。
这个工作就是取代了使用Spring技术时的各种繁琐的配置文件的书写。
public class Book {
private Integer id;
private String name;
private String type;
private String description;
//setter,getter,toString
}
Mybatis 会扫描接口并创建接口的代码对象交给 Spring 管理,但是没有告诉 Mybatis 哪个是 dao 接口。 需要在 BookDao 接口上使用 @Mapper
@Mapper
public interface BookDao {
@Select("select * from tbl_book where id = #{id}")
public Book getById(Integer id);
}
@SpringBootTest
class Springboot08MybatisApplicationTests {
@Autowired
private BookDao bookDao;
@Test
void testGetById() {
Book book = bookDao.getById(1);
System.out.println(book);
}
}
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db
username: root
password: root
导入Druid坐标
com.alibaba
druid
1.1.16
yml中配置数据源的使用
type: com.alibaba.druid.pool.DruidDataSource
1. pom.xml 配置起步依赖,必要的资源坐标(druid)
2. application.yml 设置数据源、端口port等
3. 配置类 全部删除
4. dao 设置@Mapper
5. 测试类
6. 页面 放置在resources目录下的static目录中
1.pom文件添加依赖
2.配置yml文件
3.导入实体类文件domain下的Book
2.创建dao接口
加上@Mapper,让Boot项目可以扫描到对应的组件,然后生成自动代理。
3.controller文件无需修改
4.实现类无需修改
5.所有的配置类可以删除(config)、
6.修改测试类
7.把页面静态资源放到以下文件夹
index.html的作用是设置主页面,在浏览器中输入localhost后,自动调转到index.html设置的主页面去