天天看点

SpringBoot中常见的注解总结

@Autowired 可以通过对象的类型来自动加载某个类

@Qualifier 经常与@Autowired一起使用,通过具体名字来自动装配

@Resource 有两个属性:name和type,默认是按照byName注入,相当于前两个整合

前面三个注解针对于bean类型的数据,基本类型和String类型无法实现,因此有了@value注解

@value value属性用于指定数据的值,可以用 ${表达式} 的写法

@Controller 控制层 handler处理器

@Service 服务层

@Repository 持久层,DAO层

@Component 在确定不了是哪一个层的时候使用

Spring会把这四个注解当作需要注入的Bean加载在上下文中

@RequestMapping 这个注解可以作用在方法上,用来指定请求路径。

@RequestBody 用在控制层的方法上,可以将前端传回来的json转换为java对象

@ResponseBody 用在控制层方法上,可以将方法返回的Java对象转为json数据传到前端

这些注解作用于类上,该类的所有方法都适用。

@RestController 用在类上,相当于@Controller+@ResponseBody

@MapperScan 用来扫描指定包内的所有mapper

@SpringBootApplication 是 Spring Boot 最核心、最基础的注解。

@Configuration 用于定义配置类,可以替换xml配置文件。该配置可以省略,加上该注解,获得的类对象默认为单例

@Bean 在@Configuration注解下进行创建,在方法上使用@Bean就表明这个方法需要交给Spring进行管理

@Scope 设置Bean的作用域。

singleton 单例模式,bean的默认作用域,单例模式对于无会话状态的bean(DAO、service)来说,是最理想的选择

prototype 原型模式,对需要保持会话状态的bean应该使用prototype

request 该作用域仅在当前 HTTP Request 内有效

session 该作用域仅在当前 HTTP Session 内有效

application bean对象的定义范围在ServletContext生命周期内。仅仅在web-aware的上下文中有效

websocket bean对象的定义为WebSocket的生命周期内。仅仅在web-aware的上下文中有效

@PostConstruct 注解在方法上,表示该方法是在Spring实例化该Bean之后马上执行此方法。一个Bean中@PostConstruct注解的方法可以有多个

@PreDestory 容器销毁前执行该方法

不用启动项目就可以进行测试

需要先添加junit依赖

@RunWith(SpringJUnit4ClassRunner.class),创建容器

@ContextConfiguration("classpath:xxx.xml"),加载配置文件

@Test,测试方法

@Aspect 把当前类标识为一个切面供容器进行读取

@before(前置通知)通知方法在目标方法调用之前执行

@after(后置通知)通知方法在目标方法返回或异常后调用

@after-returning(返回后通知)通知方法会在目标方法返回后调用

@after-throwing(抛出异常通知)通知方法会在目标方法抛出异常后调用

@around(环绕通知) 通知方法会将目标方法封装起来

首先要在配置文件中开启注解事务

@Transactional添加在接口实现类或接口实现方法上,而不是接口类中。只有public的方法才起作用

@EnableScheduling加在Application类上

@Scheduled加在需要使用定时器的方法上

别名

@Alias