我的springboot学习笔记
平时在开发的时候,会突然脑子短路,想不起所需要用的注解,或者注解该怎么用,这时候去百度搜索,得到的结果又很乱。最近刚好也在学习SpringBoot这门技术。所以就像浅浅的把所学习的知识记录一下,方便自己进行回顾。
一、基础部分的注解
1.1 定义基础Bean
以下注解作用一样,只是为了便于区分Bean的作用,即标记不同类的功能
@Controller
@Controller 是Spring MVC注解,表示此类用于处理Web请求,是一个MVC类,通常用于controller层,经常与@RequestMapping一起使用。
@Service
@Service 声明此类是一个业务处理类,通常用于service层,经常与@Transaction一起配合使用。
@Repository
@Repository 声明此类是一个数据层或者其他NoSQL访问的Bean,通常用于dao层。
@Component
@Component 声明此类是一个Spring管理的类,通常用于无法用上述注解描述的Spring管理类。
1.2 定义配置类Bean
使用java类替代spring的核心配置文件
@Configuration
@Configuration 声明此类是一个配置类,经常与注解@ComponentScan(此注解只能添加一次,多个数据用数组格式,例如:@ComponentScan( {“AAA.B” , “CCC.D”} ) 声明有多个数据)配合使用。
@Import(xxx.class)
@Import(xxx.class)用于导入其他配置类,方便我们在@Configuration注解的类上能看到导入了哪些配置。
1.3 管理基础Bean
@Scope
@Scope用于定义Bean的作用域,是单例的还是多例的。其值有:singleton(默认,单例),prototype(多例)。
@PostConstruct
@PostConstruct 用于定义Bean的初始化方法,在Bean构造方法之后调用。
@PreDestroy
@PreDestroy 用于定义Bean的销毁方法,在Bean销毁之前调用。
1.4 依赖注入注解
@Autowried
@Autowried 是根据类型来引用Bean的,使用起来更加简单,但是如果有多个同类型的Bean,就会发生冲突,此时需要将多个同类型的Bean定义唯一名字才能实现自动装配。采用暴力反射来注入数据,即对应属性没有setter方法依然可以填入值(打破了封装性)。
@Quallifier(“exampleBean”)
@Quallifier(“Bean的名称”)根据名字进行引用Bean,需搭配@Autowried使用。实现Bean的自动装配。
@Value(“exampleValue”)
@Value用于给基本数据类型做自动装配使用,无需强制搭配@Autowried使用。可以引用properties文件中的数据,例如@Value( " $ { XXX } " ),前提是需要在配置类中使用注解@PropertySource(“AAA.properties”)指定配置文件的路径。
1.5 读取配置文件
@PropertySource(“AAA.properties”)
@PropertySource用于定义配置类的配置文件在哪获取,多个文件源采用{“AA.B”,“CC.D”}形式,不支持通配符*.xxx形式。
1.6 第三方Bean管理
@Bean
@Bean用于定义第三方Bean为Spring管理的Bean对象。
1.7 请求类型注解
@RequestMapping
@RequestMapping 是Spring MVC注解,表示如果请求路径匹配,被注解的方法被调用。
@ResponseBody
@ResponseBody 表示此方法返回的是文本而不是视图名称。
1.8 杂项补充(热启动)
SpringBoot 提供了spring-boot-devtools,他能修改类或者配置文件的时候自动加载SpringBoot应用,需要打开pom文件,添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
@RestController
@RestController 是RESTFul风格对应的注解,表示此类用于处理Web请求(REST风格)。可以理解为@RestController相当于@Controller和@ResponseBody的结合。
对RESTFul不了解的话,可以看我的另一篇博客,里面粗略的简述了什么是REST风格,让你能快速上手开发。链接: REST风格
1.9 AOP注解
@Aspect
@Aspect 声明了这是一个切面类。
@Around
@Around 声明了一个表达式,描述要织入的目标的特性。
@within
@within 表示目标类型带有注解,其注解类型参数为 org.springframework.stereotype.Controller,这意味着Spring Controller方法在被调用的时候,都会执行@Around注解的方法。
1.10 MVC文件目录介绍
controller: 此包下包含了MVC的Controller,如UserController。
service: 此包下有业务处理代码,如UserService。
entity: 此包下包含了业务实体,如User类。
conf: 此包下包含了一些配置类,比如用于配置数据源的DataSourceConfig。
二、总结
这篇博客主要是用于自己学习回顾用的,有不足或出错的地方,还请希望大佬们可以在评论区进行指出。暂时学到的就这么多啦,之后如果有接触到新的东西,会及时添加进来的。