为什么Java程序员必须要会SpringBoot?( 五 )


14.RequestMapping 和 GetMapping 有什么不同?
答:RequestMapping 和 GetMapping 区别如下:

  • RequestMapping 可以支持 GET、POST、PUT 请求;
  • GetMapping 是一个组合注解,相当于 @RequestMapping(method = RequestMethod.GET) 。
15.以下关于 @RestController 和 @Controller 说法正确的?
A:@Controller 返回 JSON 数据B:@RestController 返回 JSON 数据C:@APIController 返回 JSON 数据D:以上都对
答:B
16.Spring Cache 常用的缓存注解有哪些?
答:Spring Cache 常用注解如下:
  • @Cacheable:用来声明方法是可缓存,将结果存储到缓存中以便后续使用相同参数调用时不需执行实际的方法,直接从缓存中取值;
  • @CachePut:使用它标注的方法在执行前,不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中;
  • CacheEvict:是用来标注在需要清除缓存元素的方法或类上的,当标记在一个类上时表示其中所有方法的执行都会触发缓存的清除操作 。
17.Spring Boot Admin 和 Spring Boot Actuator 的关系是什么?
答:Spring Boot Admin 使用了 Spring Boot Actuator 接口进行 UI 美化封装的监控工具,它以图形化的方式查询单个应用的详细状态,也可以使用 Spring Boot Admin 来监控整个集群的状态 。
18.如何理解 Spring Boot 中的 Stater?
答:Stater 可以理解为启动器,它是方便开发者快速集成其他框架到 Spring 中的一种技术 。比如,spring-boot-starter-data-jpa 就是把 JPA 快速集成到 Spring 中 。
19.常见的 starter 有哪些?
答:常见的 starter 如下:
  • spring-boot-starter-web:Web 开发支持
  • spring-boot-starter-data-jpa:JPA 操作数据库支持
  • spring-boot-starter-data-redis:Redis 操作支持
  • spring-boot-starter-data-solr:Solr 权限支持
  • mybatis-spring-boot-starter:MyBatis 框架支持
20.Spring Boot Starter JDBC 和 Spring JDBC 有什么关系?
答:spring-boot-starter-jdbc 是 Spring Boot 针对 JDBC 的使用提供了对应的 Starter 包,在 Spring JDBC 上做了进一步的封装,方便在 Spring Boot 生态中更好的使用 JDBC 。
21.Spring Boot 有哪几种读取配置的方式?
答:Spring Boot 可以通过 @Value、@Environment、@ConfigurationProperties 这三种方式来读取 。
例如,配置文件内容如下:
app.name=中文① Value 方式
@Value("${app.name}")private String appName;② Environment 方式
public class HelloController {    @Autowired    private Environment environment;    @RequestMapping("/index")    public String index(String hiName) {        // 读取配置文件        String appName = environment.getProperty("app.name");        return "Hello, " + hiName + " |@" + appName;    }}
为什么Java程序员必须要会SpringBoot?

文章插图
 
③ ConfigurationProperties 方式
@ConfigurationProperties(prefix = "app")public class HelloController {    // 读取配置文件,必须有 setter 方法    private String name;    public void setName(String name) {        this.name = name;    }    @RequestMapping("/index")    public String index(String hiName) {        System.out.println("appname:" + name);        return "Hello, " + hiName + " |@" + appName;    }}
为什么Java程序员必须要会SpringBoot?

文章插图
 
22.使用 @Value 读取中文乱码是什么原因?如何处理?
答:这是因为配置文件的编码格式导致的,需要把编码格式设置为 UTF-8,如下图所示:
为什么Java程序员必须要会SpringBoot?

文章插图
 

为什么Java程序员必须要会SpringBoot?

文章插图
 
?
设置完成之后,重新启动 IDEA 就可以正常显示中文了 。


推荐阅读