SpringBoot的应用
一、springboot的应用
1、创建springboot项目
@RestController // 该注解为组合注解,等同于Spring中@Controller+@ResponseBody注解
public class DemoController {
@RequestMapping("/demo")
public String demo(){
System.out.println("你好");
return "hello springBoot";
}
}
2、乱码问题配置
# 乱码问题配置
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
3、springboot日志配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-logging</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
# 日志配置
# 指定具体包的日志级别
logging.level.com.test=debug
# 控制台和日志文件输出格式
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level%logger{50} - %msg%n
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}- %msg%n
# 日志输出路径,默认文件spring.log
logging.file.path=spring.log
#logging.file.name=log.log
@SpringBootTest
public class LoggerTests {
Logger logger = LoggerFactory.getLogger(getClass());
@Test
public void testLog() {
logger.trace("Trace 日志...");
logger.debug("Debug 日志...");
logger.info("Info 日志...");
logger.warn("Warn 日志...");
logger.error("Error 日志...");
}
}
4、springboot整合mybatis
<!-- 配置处理器-配置文件参数注入 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- 配置mysql数据驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
<!-- druid连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- 整合jdbc -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 整合mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
spring:
datasource:
username: root
password: root
url: jdbc:mysql://192.168.3.33:3306/springimpl?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
sql:
init:
mode: always
@Configuration
public class DruidConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druid(){
return new DruidDataSource();
}
}
public class User {
private Integer id;
private String username;
private String password;
//省略set、get、toString
}
编写Mapper
src/main/java/com/test/mapper/UserMapper.java
public interface UserMapper {
@Select("SELECT * FROM USER")
List<User> findList();
}
@SpringBootApplication
@MapperScan("com.test.mapper")
public class SpringbootTestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootTestApplication.class, args);
}
}
@Service
public class UserService {
Logger logger = LoggerFactory.getLogger(UserService.class);
@Autowired
private UserMapper userMapper;
public List<User> findUsers(){
List<User> userList = userMapper.findList();
logger.info(userList.toString());
return userList;
}
}
@SpringBootTest
public class MybatisTests {
@Autowired
private UserService userService;
@Test
public void getUser() {
userService.findUsers();
}
}
二、配置文件讲解及测试
1、全局配置文件参数读取
1.1 全局配置文件的位置
1. 先去项目根目录找config文件夹下找配置文件件
2. 再去根目录下找配置文件
3. 去resources下找cofnig文件夹下找配置文件
4. 去resources下找配置文件
java -jar myproject.jar --spring.config.name=myproject
java -jar run-0.0.1-SNAPSHOT.jar --spring.config.location=D:/application.properties
1.2 配置文件的读取
spring.config.use-legacy-processing = true
1.2.1 导包
<!-- 配置处理器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
1.2.2 编写配置对象Bean
public class Pet {
private String type;
private String name;
//省略get、set、tostring
}
@Component //用于将Person类作为Bean注入到Spring容器中
@ConfigurationProperties(prefix = "person") //将配置文件中以person开头的属性注入到该类中
public class Person {
private int id; //id
private String name; //名称
private List hobby; //爱好
private String[] family; //家庭成员
private Map map;
private Pet pet; //宠物
//省略get、set、tostring
}
1.2.3 编写配置文件
1.2.3.1 properties文件方式
person.id=1
person.name=tom
person.hobby=吃饭,睡觉
person.family=大哥,大姐
person.map.k1=v1
person.map.k2=v2
person.pet.name=大白
person.pet.type=dog
1.2.3.2 yml(yaml)文件方式
#对实体类对象Person进行属性配置
person:
id: 1
name: lucy
hobby: [吃饭,睡觉]
family: [father,mother]
map: {k1: v1,k2: v2}
pet: {type: dog,name: 旺财}
1.2.4 单测
@SpringBootTest
class SpringbootTestApplicationTests {
@Autowired
private Person person;
@Test
void contextLoads() {
System.out.println(person);
}
}
2、四种属性注入方式
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/springboot
jdbc.username=root
jdbc.password=123
2.1 单个属性绑定@Value
@Configuration
public class JdbcConfiguration {
@Value("${jdbc.url}")
String url;
@Value("${jdbc.driverClassName}")
String driverClassName;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
}
@Autowired
private JdbcConfiguration jdbcConfiguration;
@Test
void test01() {
System.out.println(jdbcConfiguration);
}
2.2 批量属性绑定@ConfigurationProperties
<!-- 配置处理器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
@Configuration
@EnableConfigurationProperties(JdbcConfiguration.class)
@ConfigurationProperties(prefix = "jdbc")
public class JdbcConfiguration {
String url;
String driverClassName;
String username;
String password;
//省略set、get、toString
}
@Autowired
private JdbcConfiguration jdbcConfiguration;
@Test
void test01() {
System.out.println(jdbcConfiguration);
}
2.3 第三方进行属性绑定@Bean
<!-- 配置处理器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
another.enabled=true
another.remoteAddress=192.168.10.11
public class AnotherComponent {
private boolean enabled;
private InetAddress remoteAddress;
//省略set、get、toString
}
@Configuration
public class MyService {
@ConfigurationProperties("another")
@Bean
public AnotherComponent anotherComponent(){
return new AnotherComponent();
}
}
@Autowired
private AnotherComponent anotherComponent;
@Test
void test02() {
System.out.println(anotherComponent);
}
3、热部署
<!-- 引入热部署依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
原文地址:https://blog.csdn.net/xike1024/article/details/142504217
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!