一、类上添加注解
1、@Component/@Controller/@Service/@Repository
作用:将该类设置为bean
@Controller:表现层 控制层,控制业务逻辑
@Service:业务层 service层:业务层控制业务(业务逻辑层)
@Repository:数据层 dao层:主要是和数据库进行交互。也被称为mapper层
2、@Configuration和@ComponentScan
两个注解结合在一起使用
@Configuration注解用于设定当前类为配置类
@ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式
此外:还可设置哪些不被扫描。
例如:
3、@Scope
作用:设置当前创建的bean是单例还是非单例
例如:非单例,默认是单例不用填写
4、@PropertySource需要@value配合(properties中内容)
作用:读取properties配置文件中的数据,采用的是key-value的方法,key之前是放在xml文件中,现在是使用配置类来代替了xml文件,所有在配置类中进行添加这个注解。
例如:
步骤一:
步骤二:
读取多个属性
5、@Import
作用:在springConfig的配置类中,对第三方bean的配置类进行扫描到,并被Spring管理
例如:
6、@RunWith
例如:
7、@ContextConfiguration
作用:添加的是Spring管理的主要配置类
例如:
8、@EnableAspectJAutoProxy
作用:在配置类上面进行添加,表示spring中存在AOP。
9、@Aspect
作用:在通知类上面添加注解。
通常是和四个注解一起使用:@EnableAspectJAutoProxy、@Aspect、@Pointcut和@Before组成Spring中的AOP开启。
10、@EnableTransactionManagement
作用:在spring主配置中进行添加,开启事务支持
11、RequestMapping(映射路径)
作用:使得前端可以访问请求到后端,使得被请求后执行后端的该路径位置的程序和返回前端相应的数据。
例如:前端访问
就会访问到后端的这个位置:
12、@ResponseBody
作用:使得数据以json的格式返回到前端
例如:
13、@EnableWebMvc(SpringMVC接收和json数据)
作用:在SpringMVC配置类中添加注解,方便来自前端json的接收,即后端对接收的json数据进行接收。
14、@RestController
作用:快速开发RESTFUL风格。将原来的注解进行合并
15、@RestControllerAdvice(REST风格的异常处理)
通常还和注解@ExceptionHandler进行配合使用,用于处理指定的某些异常。
注:确保SpringMvcConfig能够扫描到异常处理器类
二、方法上添加注解
1、@PostConstruct
作用:bean初始化,在调用方法前就启动了。
2、@PreDestroy
作用:在bean方法结束前使用,通常需要和ctx.close():该语句是关闭容器IOC,不关闭毁灭的方法来不及加载。
3、@bean
4、@Pointcut
作用:在通知类内部添加一个属性,作为与需要增强的连接点连接的切入点。在该属性上面进行添加@Pointcut注解。
5、@Before、@After、@AfterReturning、@AfterThrowing和@Around
作用:实际上就是切面,表示和通知方法与切入点之间的关联
其他的通知类注解:
回环通知的注意:
6、@Transactional
7、@GetMapping @PostMapping@PutMapping@DeleteMapping
作用:替换原来这些重复的内容,进行注解替换
8、@ExceptionHandler
作用:通常处理指定的异常。
放置于专门处理异常类中。这个异常类通常需要在类上面添加注解@RestControllerAdvice
三、属性上添加注解
1、@Autowired和@Qualifier
作用:给setter注入和构造器注入进行配置,去掉了这些注入,在属性上进行添加注解
1、如果存在多个bean的情况发生,但是属性的bean和IOC容器的bean相同时,会采取的是按照名称进行查询。虽然@Autowired是按照类型进行查询的,但这种情况下是可以对多个bean进行按照名称查询。
例如:
2、如果IOC容器中的名称和属性的名称不一致,那么需要使用@Qualifier,来指定注入那个名称的bean对象。
2、@Value
作用:普通数据类型的注解,注意@value后面的参数和属性的数据类型保持一致。
四、参数上添加注解
1、@RequestParam
作用:解决前端的参数名称和后端参数名称不一致的情况,将前端的参数名称转换成后端的参数名称。
例如:
后端的参数名称是:userName。前后不一致,导致数据无法匹配接收。
也用在集合参数中:
例如:
2、@RequestBody
作用:接收json的数据,必须在形参位置处进行添加该注解
注解对比:@RequestParam和@RequestBody
3、@PathVariable
作用:传递参数信息
例如: