假如说后端想返回一个string类型字符串”你好,SpringBoot”给前端。那么,有以下两种方案: 通过HttpServletResponse对象 @GetMapping(value = "test")public void test(HttpServletResponse response ...
加载第三方组件.md
我们平常开发写的@Compone将类加入到IOC容器中,主要针对的是业务类。如果想把第三方的jar包中的类加入到IOC容器中,应该怎么操作呢? 在@SpringBootApplication注解中有一个@EnableAutoConfiguration。这是导入第三方jar包的关键 在@Enable ...
自动配置.md
我们运行启动类就可以运行项目,那么SpringBoot是怎么自动配置的呢? 我们从SpringBoot的入口类开始分析。入口类有@SpringBootApplication注解。点击进去: @SpringBootConfiguration实际上也是一个@Configuration @Target(E ...
自定义异常体系.md
自定义异常体系在我们的日常开发中非常重要。一方面为了让用户体验更好,应该在发生异常的时候,在前端页面显示出错误信息。而另一方面,应该隐藏后端的异常,因为后端出现的异常对于前端开发者和用户来说毫无意义。所以,我们需要定义一种统一返回给前端的异常格式。 我们先明确两个概念:未知异常,已知异常 在开发过程 ...
应对变化的两种方案.md
变化是使得代码不稳定的本质问题。为了应对变化,通常有两种解决方案: 1.策略模式 2.属性配置、配置文件 所谓的策略模式就是实现一个接口,有多个实现类。根据不同的情况来切换不同的实现类。 所谓的配置文件,就是将代码中经常变化的部分抽出来放在配置文件,通过修改配置文件来应对变化。 策略模式应对变化的 ...
Conditional.md
条件注解可以解决策略模式多种实现类的问题。 使用自定义条件注解需要自己编写一个类实现conidtion接口,并在配置类中使用@conditional注解。 @Bean @Conditional(DatabaseCondition.class) public Connect mysql() ...
Configuration.md
@Configuration也是一个将bean加入到IOC容器的注解。那么它和其他的模式注解有什么区别吗? 其他的模式注解只能将一个类加入到IOC容器,也能通过配置文件修改类的属性。但是它的缺点是不能应对一个接口有多个实现类的变化。假如需要注入的是另外的一个实现类,就很难实现了。 而@Configu ...
Autowaired.md
面向抽象的编程,通常,我们会在类中定义接口,而注入的是接口的实现类。 举个栗子: @RestController@RequestMapping("/v1/banner")public class BannerController { @Autowired private Sk ...