Java -Spring-boot

Spring-Boot

1. Spring-Boot简介

Spring-Boot是Spring官方提供的一个快速开发脚手架,可以基于Spring-Boot快速开发单个微服务。 使用目的:简化Spring应用的初始搭建以及开发过程。如配置文件的配置,繁琐的依赖配置等。

2. Spring-Boot特点

  1. 独立运行的Spring项目
  2. 内嵌Tomcat、Jetty或Undertow,不需要部署WAR文件
  3. 提供运行时的应用监控
  4. 提供starter简化Maven配置
  5. 自动配置Spring

3.AppConfig.java 配置类

  1. @Configuration:声明当前类是一个配置类,相当于Spring配置的xml文件
  2. @Bean:声明在方法上,将方法的返回值加入Bean容器,相当于Spring配置的标签 2.1 @Bean(name="user"):指定Bean的名称,如果不指定,Bean的名称默认为方法名 2.2 @Bean(name="user",initMethod="init",destroyMethod="destroy"):指定Bean的初始化方法和销毁方法 2.3 关联其他Bean:
  3. @ComponentScan:自动扫描包,相当于Spring配置的context:component-scan标签
java
复制代码
// 方式一: 调用方法注入 关联的bean @Bean public User user(){ return new User(); } @Bean public UserService userService(){ UserService userService = new UserService(); userService.setUser(user()); return userService; } // 方式二:通过方法形参注入 关联的bean @Bean public UserService userService(User user){ UserService userService = new UserService(); userService.setUser(user); return userService; }

4.测试类Junit4和Junit5

java
复制代码
// Junit4 @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = AppConfig.class) // Junit5 @SpringBootTest(classes = AppConfig.class)

5.主配置中导入其他配置类或者配置文件

java
复制代码
// 方式一:通过@Import注解导入其他配置类 @Configuration @Import({AppConfig2.class,AppConfig3.class}) // 方式二:通过@ImportResource注解导入其他配置文件 @Configuration @ImportResource("classpath:applicationContext.xml") // 方式三:通过@PropertySource注解导入其他配置文件 @Configuration @PropertySource("classpath:jdbc.properties")

6.配置文件的优先级

properties文件的优先级高于yml文件而以下四个位置的配置文件优先级高低顺序如下:

  1. 项目根目录下的config文件夹
  2. 项目根目录下
  3. classpath下的config文件夹
  4. classpath下

7.读取配置文件(三种方式)

java
复制代码
// 方式一:通过@Value注解读取配置文件 @Value("${name}") private String name; // 方式二:通过Environment读取配置文件 @Autowired private Environment env; env.getProperty("name"); // 方式三:通过@ConfigurationProperties注解读取配置文件 @ConfigurationProperties(prefix = "user")

Spring-Boot 集成ssm

1. Spring-Boot集成Mybatis

  1. 导入依赖
xml
复制代码
<!-- Spring-Boot集成Mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency>
  1. 配置数据源
yml
复制代码
spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: 123456
  1. 配置Mybatis
yml
复制代码
mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.example.demo.entity
  1. 编写Mapper接口和Mapper.xml文件
java
复制代码
// Mapper接口 public interface UserMapper { List<User> findAll(); } // Mapper.xml文件 <mapper namespace="com.example.demo.mapper.UserMapper"> <select id="findAll" resultType="com.example.demo.entity.User"> select * from user </select> </mapper>

5.使用PageHelper分页插件

xml
复制代码
<!-- 使用PageHelper分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> </dependency>

2. Spring-Boot集成SpringMVC

  1. 导入依赖
xml
复制代码
<!-- Spring-Boot集成SpringMVC --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
  1. 配置SpringMVC
java
复制代码
// 配置类 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("index"); } } // 静态资源配置 spring: mvc: static-path-pattern: /static/** static-locations: classpath:/static/
  1. 编写Controller
java
复制代码
@Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/findAll") public String findAll(Model model){ List<User> users = userService.findAll(); model.addAttribute("users",users); return "userList"; } }

3. 事务管理

  1. 导入依赖
xml
复制代码
<!-- 事务管理 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
  1. 配置事务管理器
java
复制代码
// 配置类 @Configuration public class TransactionConfig { @Autowired private DataSource dataSource; @Bean public DataSourceTransactionManager transactionManager(){ return new DataSourceTransactionManager(dataSource); } }

4.统一异常处理

  1. 编写异常处理类
java
复制代码
@ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) public String exceptionHandler(Exception e, Model model){ model.addAttribute("msg",e.getMessage()); return "error"; } }
  1. 拦截器配置
java
复制代码
// 配置类 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**"); } }

5. 日志管理

  1. Slf4j日志
  2. 使用方式
xml
复制代码
// 方式一:直接使用 private static final Logger logger = LoggerFactory.getLogger(UserController.class); // 方式二:使用注解 @Slf4j
  1. 日志级别
xml
复制代码
# 日志级别 warn info debug error

4.5、Logback 配置文件的使用

xml
复制代码
<?xml version="1.0" encoding="UTF-8"?> <!-- scan:开启日志框架的热部署,默认值 true 表示开启 scanPeriod:热部署的频率,默认值 60 second debug:设置输出框架内部的日志,默认值 false --> <configuration scan="true" scanPeriod="60 second" debug="false"> <property name="appName" value="springboot demo" /> <contextName>${appName}</contextName> <!-- appender:日志输出对象,配置不同的类拥有不同的功能 ch.qos.logback.core.ConsoleAppender:日志输出到控制台 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd-HH:mm:ss} %level [%thread]-%logger{35} >> %msg %n</pattern>      </encoder>    </appender> <!-- ch.qos.logback.core.FileAppender:日志输出到文件中 <appender name="fileAppender" class="ch.qos.logback.core.FileAppender"> <encoder> <pattern>%-4relative [%thread] %level %logger{35} - %msg %n</pattern>    </encoder> <append>true</append> <file>mylog.log</file>    </appender> --> <!-- root 是项目通用的 logger,一般情况下都是使用 root 配置的日志输出 level:按照级别输出日志,日志级别,级别越高,输出的内容越少 -->    <root level="info"> <appender-ref ref="STDOUT" /> </root> <!-- 自定义的 logger,用于专门输出特定包中打印的日志 <logger name="cn.wolfcode.crm.mapper" level="trace"> </logger> --> </configuration>

6. 修改banner

  1. 在src/main/resources目录下新建banner.txt文件

7. 热部署

  1. 导入依赖
xml
复制代码
<!-- 热部署 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
  1. 配置文件
yml
复制代码
# 热部署 spring: devtools: restart: enabled: true

8. 自动配置

text
复制代码
推荐文章: https://blog.csdn.net/qq_41805567/article/details/129111183
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP