####Spring容器中有哪些方式可以将bean注入? 在Spring中,我们把对象称为bean,它们可以被Spring容器管理和注入到其他bean中。那么,我们如何将一个bean加入到Spring容器中呢?这里我总结了以下几种常用的方式: - 1.使用@Configuration和@Bean注解:这种方式是通过在一个类上加上@Configuration注解,然后在该类中定义一些方法...
类java.text.DecimalFormat是java.text.NumberFormat的子类,用于格式化十进制数字。 它可以在任何语言环境中,解析和格式化数字。 它支持不同类型的数字,包括整数(1)、定点数字(1.1)、科学记数法(1.11E4)、百分比(11%)和货币金额(11美元)等。 下面演示DecimalFormat的具体用法: ####一、Decimal...
开发经常遇到分页查询的需求,但是当翻页过多的时候,就会产生深分页,导致查询效率急剧下降。 有没有什么办法,能解决深分页的问题呢? 本文总结了三种优化方案,查询效率直接提升10倍,一起学习一下。 ####1. 准备数据 先创建一张用户表,只在create_time字段上加索引: ``` CREATE TABLE `user` ( `id` int NOT NULL A...
创建联合索引的时候,建议优先把区分度高的字段放在第一列。 至于怎么统计区分度,可以按照下面这种方式。 创建一张测试表,用来测试: ``` CREATE TABLE `test` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', `a` int NOT NULL, `b` int NOT NULL, `c` i...
####案例 1:资源文件扫描不到 首先,我们来写一个 HelloWorld 版的 Spring Boot 程序以做测试备用。 先来定义一个 Controller: ``` @RestController public class HelloController { @Autowired HelloWorldService helloWorldService...
一般而言,微服务之间的通信大多都是使用 HTTP 方式进行的,这自然少不了使用 HttpClient。在不使用 Spring 之前,我们一般都是直接使用 Apache HttpClient 和 Ok HttpClient 等,而一旦你引入 Spring,你就有了一个更好的选择,这就是我们这一讲的主角 RestTemplate。那么在使用它的过程中,会遇到哪些错误呢?接下来我们就来总结下。 ...
####案例 1:嵌套事务回滚错误 上一节课我们完成了学生注册功能,假设我们需要对这个功能继续进行扩展,当学生注册完成后,需要给这个学生登记一门英语必修课,并更新这门课的登记学生数。为此,我添加了两个表。 ``` 课程表 course,记录课程名称和注册的学生数。 CREATE TABLE `course` ( `id` int(11) NOT NULL AUTO_INCREMEN...
Spring 事务管理包含两种配置方式,第一种是使用 XML 进行模糊匹配,绑定事务管理;第二种是使用注解,这种方式可以对每个需要进行事务处理的方法进行单独配置,你只需要添加上@Transactional,然后在注解内添加属性配置即可。在我们的错误案例示范中,我们统一使用更为方便的注解式方式。 另外,补充一点,Spring 在初始化时,会通过扫描拦截对事务的方法进行增强。如果目标方法存在事...
####案例 1:注意读与取的一致性 当使用 Spring Data Redis 时,我们有时候会在项目升级的过程中,发现存储后的数据有读取不到的情况;另外,还会出现解析出错的情况。这里我们不妨直接写出一个错误案例来模拟下: ``` @SpringBootApplication public class SpringdataApplication { SpringdataA...
####案例 1:小心过滤器异常 为了方便讲解,我们还是沿用之前在事务处理中用到的学生注册的案例,来讨论异常处理的问题: ``` @Controller @Slf4j public class StudentController { public StudentController(){ System.out.println("construct"); ...