SpringBoot知识复习

62 篇文章 3 订阅

SpringBoot知识复习

特点

独立运行的 Spring 项目
内嵌 Servlet 容器
提供 starter 简化 Maven 配置
自动配置 Spring
准生产的应用监控
无代码生成和 xml 配置(*)

缺点

版本迭代速度很快,一些模块改动很大
尽量选择稳定版本

由于不用自己做配置,报错时很难定位。
学会自己定位问题及阅读源码的能力

缺少注册、发现等外围方案
集成成熟的相关第三方组件

常用注解

@SpringBootApplication 启动类注解
@ComponentScan 扫描@Componment修饰的类,实例化到容器中
@Configuration 配置类注解
@EnableAutoConfiguration 自动加载@Configuration修饰的配置类
@Component 需要将所修饰的类实例化到容器中
@Bean 管理第三方jar包内的类加载到容器中,一般配合@Configuration使用
@Autowired 参数类注解,用于装载容器中的实例 默认按类型装配
@Resource 参数类注解,用于装载容器中的实例 默认按照名称进行装配
@PropertySource 加载局部配置文件 只能识别properties文件
@ConfigurationProperties 配置属性 将配置文件中属性值绑定到bean里
@Value 读取配置并给实体类中的属性赋值 读取Spring的Environment中的值

条件类注解
@ConditionalOnBean:当SpringIoc容器内存在指定Bean的条件
@ConditionalOnClass:当SpringIoc容器内存在指定Class的条件
@ConditionalOnExpression:基于SpEL表达式作为判断条件
@ConditionalOnJava:基于JVM版本作为判断条件
@ConditionalOnJndi:在JNDI存在时查找指定的位置
@ConditionalOnMissingBean:当SpringIoc容器内不存在指定Bean的条件
@ConditionalOnMissingClass:当SpringIoc容器内不存在指定Class的条件
@ConditionalOnNotWebApplication:当前项目不是Web项目的条件
@ConditionalOnProperty:指定的属性是否有指定的值
@ConditionalOnResource:类路径是否有指定的值
@ConditionalOnSingleCandidate:当指定Bean在SpringIoc容器内只有一个,或者虽然有多个但是指定首选的Bean
@ConditionalOnWebApplication:当前项目是Web项目的条件

web接口开发相关注解 Spring-MVC
@RestController 控制层 实例化到容器 是@Controller+@ResponseBody组合 返回json等
@Service 业务层 实例化到容器
@Repository 持久层 实例化到容器
@Controller 配合模板使用 一般返回的是模板页面路径或跳转到哪里
@ResponseBody 方法注解 Controller层方法返回值转为json格式数据

http接口类型定义
@RequestMapping 配置请求路径 可以修饰类、方法
@GetMapping get请求 一般是获取信息、下载链接业务请求
@PostMapping post请求 一般是新增或复杂查询的业务请求
@PutMapping put请求 修改请求 全量修改
@PatchMapping patch请求 修改请求 put的一种 增量修改
@DeleteMapping delete请求 删除请求
注意:也可以方法使用@RequestMapping(value = “/abc”,method = RequestMethod.XXX),不建议使用 还是用@*Mapping好一些 提高代码可读性

常用starter

spring-boot-starter-thymeleaf使MVC Web applications 支持Thymeleaf
spring-boot-starter-mail使用Java Mail、Spring email发送支持
spring-boot-starter-data-redis通过Spring Data Redis 、Jedis client使用Redis键值存储数据库
spring-boot-starter-web构建Web,包含RESTful风格框架SpringMVC和默认的嵌入式容器Tomcat
spring-boot-starter-activemq为JMS使用Apache ActiveMQ
spring-boot-starter-data-elasticsearch使用Elasticsearch、analytics engine、Spring Data Elasticsearch
spring-boot-starter-aop通过Spring AOP、AspectJ面向切面编程
spring-boot-starter-security使用 Spring Security
spring-boot-starter-data-jpa通过 Hibernate 使用 Spring Data JPA
spring-boot-starterCore starter,包括 自动配置支持、 logging and YAML
spring-boot-starter-freemarker使MVC Web applications 支持 FreeMarker
spring-boot-starter-batch使用Spring Batch
spring-boot-starter-data-solr通过 Spring Data Solr 使用 Apache Solr
spring-boot-starter-data-mongodb使用 MongoDB 文件存储数据库、Spring Data MongoDB

三种Bean配置方式

Xml: 老的程序中经常见到, springboot也支持导入xml
注解: 在类定义时通过@Service, @Controller, @Repository, @Component 声明为 Spring Bean
Java 配置: 通过@Configuration+@Bean 实现的 该方式引入了一个 Config 类, 在类中通过方法函数声明 bean 对象, 而 Pojo 类定义不加@Component 之类的注解, Config 类需要加上@Configuration 注解, Config 类中的 bean 方法需要加上@Bean 注解.@Configuration 等同于 xml 配置中的<beans> </beans> 标签, 需说明的是@Component 其实也是@Component 的一个子注解,@Bean 等同于 xml 配置中的 <bean> </bean>标签. @Bean 用来注解一个函数, 该函数应该一个 Bean 对象, Bean 对象的名称是方法名.

最佳实践: 注解配置方式和 Java 配置方式没有孰优孰劣, 理论上是可以相互替换的, 但可以总结一个最佳实践, 全局性的配置使用 Java 配置 (比如数据库相关配置, MVC 相关配置), 业务 Bean 配置使用注解配置, 尽量少用 Xml 配置方式.

工程结构说明

全局异常拦截
跨域设置
swagger集成配置
MybatisPlus集成配置
其他工具类说明
如何单元测试-Junit
配置文件说明
AOP和IOC例子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摘星喵Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值