环境 | win11 |
工具 | idea 2017 |
jdk | 1.8 |
数据库 | mysql5.5 |
maven | 3.2.1 |
项目导入方式 | maven 导入 |
数据库前端工具 | mysql-front (navicat 也可以) |
什么是配置类
其实,这个配置类不需要有太深的理解,只要能知道配置类在get bean 之前就可以了。
理解这个顺序比会写配置类对初学者也许还要重要!
举一个例子:
1. @Configuration 2. public class MyConfiguration { 3. @Bean 4. public String msg(){ 5. return "这是配置类中的返回信息"; 6. } 7. @Bean 8. public Role myRole(){ 9. return new Role(); 10. } 11. }
配置类怎么输入初值
java配置主要靠java类和一些注解来达到和xml配置一样的效果,比较常用的注解有:
· @Configuration:声明一个类作为配置类,代替xml文件
那么,同样的,也可以使用配置文件的方法对类进行初始化。
1. #默认路径下,classpath的路径下 2. server: 3. port: 8080 4. servlet: 5. context-path: /index 6. 7. #管理员角色的基本信息 8. role: 9. name: admin 10. description: 管理员 11. permissionIds: 12. - 10 13. - 11 14. - 12
从这里也可以看出来。 @Configuration 比配置文件还要在前,因为配置文件里是new Role();
controller 里写法如下:
1. @RestController 2. public class MyConfigurationController { 3. @Autowired 4. private String msg; 5. @Autowired 6. private Role role; 7. 8. @GetMapping("/test") 9. public String test() { 10. return msg; 11. } 12. 13. @GetMapping("/role") 14. public String getRole() { 15. return role.toString(); 16. } 17. }
就是简单的获得 msg 这个字符串,跟获得role 这个类。
运行类如下:
1. @SpringBootApplication 2. public class Unit23Application { 3. 4. public static void main(String[] args) { 5. SpringApplication.run(Unit23Application.class, args); 6. } 7. 8. }
让我们运行一下:
可以看到,当访问test (这部分不知道的请查看sb系列的helloworld)。可以看到这个msg 被配置类初始化了。
而访问role 就更厉害了。你可以发现,role 的这个类new 出来了,并且还有初始值了。
本来呢,写到这里,配置类的理解部分就够了。
但是,万一有同学有这样的疑问,这个东西在实际的项目应用当中怎么使用?啥模块中使用?怎么用?
那么,这里就一并说了好了。
最常见的应用: 图形验证码
全文地址在这里:
前后端分离,SpringBoot如何实现验证码操作 - 知乎
当然了,其它的几个验证码的类。
<!-- google kaptcha依赖 验证码 -->
<dependency>
<groupId>com.github.axet</groupId>
<artifactId>kaptcha</artifactId>
<version>0.0.9</version>
</dependency>
使用起来,也跟知乎的这篇差不多。 这里就不再浪费篇幅了。