SpringBoot(一)

Ⅰ.Overview

 

spring Boot - 构建项目 build
Spring Cloud - 数据通信 coordinate
Spring 缺点:
1 cumbersome config
2 cumbersome dependency
springBoot: 提供了一种快速使用Spring的方式
1. auto configuration
2. starting dependence
打包传递依赖,解决依赖问题
3. accessibility
no extra web server (no tomcat)

 

ⅠⅠ Using maven

 

1. maven
网上搜springboot reference Guide -> maven installation
-> parent + web
2. starting dependency
-使用jar的打包方式
-不用写version因为parent里面定义好了
use starter -> passing dependency -> resolve version conflicts

3. controller
@RestController
@RequestMapping("/hello")
4. Boot class(入口)
XXApplication.class
-> @SpringBootApplication
-> SpringApplication.run(XXApplication.class,args);

ⅠⅠⅠ Using Spring Initializer

 

ⅠⅤ config


/resources
- application.properties or
- application.yml/yaml
1. 提供2中配置文件类型
2. 默认配置名称:application
3. 优先级 .properties > .yml > .yaml
YAML:
1. case sensitive
2. space before data
3. array:"-"
3. reference: ${key}

READ CONFIG


1. @value("${person.name}")
private String name;

2. @Autowired
private Environment env;

=> env.getProperty("person.name");

3.notation on class:
@Component
@ConfigurationProperties(prefix = "person")
// 才会注入yml中person开头的
class Person{}

PROFILE: 不同环境下,动态配置切换


切换到生产 or 测试

激活profile方式

1.1 多文件方式
application.properties
=> spring.properties.active=dev
application-dev.properties
application-pro.properties
1.2. yml多文档方式,分隔符"---"
---
server: xxx
spring:
profiles: dev
---
spring:
profiles: pro
---
spring:
profiles:
active: pro

2.1 VM parameter
=> Run/Debug Configurations
=> VM options: -Dspring.profiles.active=test
or program args:
=> --spring.profiles.active=test

2.2 command active
Package jar
3.1 右边maven里package => get the jar
3.2 run jar => java -jar ./xxxx.jar --spring.profiles.active=test

内部config加载顺序

1. 项目./config/ => 是module前一级,
project -> project files -> add .properties
2. 项目./
在项目根目录下的config不会被package到jar!!!
3. classpath:/config/ =>resources/config/application.properties
4. classpath:./ => resource的根目录

项目访问路径:server.servlet.context-path=/hello
资源的访问路径:controller -> @RequestMapping("/hello")

外部config加载顺序

springboot reference guide
- externalized config

多种外部加载config的方式:

4.1 java -jar ./xxxx.jar --server.port=8082
4.2 java -jar ./xxxx.jar --spring.config.location=e://xxxxxx   // 指定config的文件路径
4.3 把application.properties放在jar同级别,java -jar时自动读取
4.4 jar同级别的/config/

=> 现实应用:需要修改配置,可以重新打包jar,也可以修改外部配置

Ⅴ 整合Junit


1. @Service写Service类的方法
2. test/ServiceTest
@RunWith(SpringRunner.class)
@SpringBootTest(class = SpringBootApplication.class)
=> 如果ServiceTest和BootClass分别在test和main下同包名,可以省略
public class ServiceTest{
@Autowired 注入类,如果有波浪线,bean上加@Repository

@Test测试类
}

ⅤⅠ 整合Redis


Test中:
注入RedisTemplate,默认本机IP:6337
redisTml.boundValueOps("name").set("zhangsan");
redisTml.boundValueOps("name").get();

yml:
spring:
  redis:
    host:


ⅤⅠ 整合MyBatis: + module 勾选driver+mybatis


yml:
spring:
  datasource:
  url: jdbc:mysql:///databasename?serverTimezone=UTC
  ...
domain: User.class
mapper:
@Mapper
@Repository // 防止注入时的波浪线,可有可无
public interface UserMapper{
1. 注解方式
@Select("select * from t_user")
List<User> findAll();
}
test: testFindAll()
2. 文件方式
resources/mapper/UserMapper.xml
<mapper namespace="mapper全路径">
<select id= "findAll" resultType="user"> // "user"是取的别名
</select>
</mapper>
3. yml配置方式
mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type.aliases-package: domain全路径 // 用来识别user对应的domain

posted @ 2024-03-02 23:14  PEAR2020  阅读(2)  评论(0编辑  收藏  举报