一、类上添加注解

1、@Component/@Controller/@Service/@Repository

作用:将该类设置为bean




spring 业务层注解Mapper为null spring各层注解_spring


@Controller:表现层 控制层,控制业务逻辑

@Service:业务层 service层:业务层控制业务(业务逻辑层)

@Repository:数据层 dao层:主要是和数据库进行交互。也被称为mapper层

2、@Configuration和@ComponentScan

两个注解结合在一起使用

@Configuration注解用于设定当前类为配置类


spring 业务层注解Mapper为null spring各层注解_数据_02


@ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式


spring 业务层注解Mapper为null spring各层注解_mybatis_03


spring 业务层注解Mapper为null spring各层注解_mybatis_04


此外:还可设置哪些不被扫描。


spring 业务层注解Mapper为null spring各层注解_spring_05


例如:


spring 业务层注解Mapper为null spring各层注解_java_06


3、@Scope

作用:设置当前创建的bean是单例还是非单例


spring 业务层注解Mapper为null spring各层注解_java_07


例如:非单例,默认是单例不用填写


spring 业务层注解Mapper为null spring各层注解_mybatis_08


4、@PropertySource需要@value配合(properties中内容)

作用:读取properties配置文件中的数据,采用的是key-value的方法,key之前是放在xml文件中,现在是使用配置类来代替了xml文件,所有在配置类中进行添加这个注解。

例如:

步骤一:


spring 业务层注解Mapper为null spring各层注解_数据_09


步骤二:


spring 业务层注解Mapper为null spring各层注解_java_10


读取多个属性


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_11


spring 业务层注解Mapper为null spring各层注解_spring_12


5、@Import

作用:在springConfig的配置类中,对第三方bean的配置类进行扫描到,并被Spring管理

例如:


spring 业务层注解Mapper为null spring各层注解_java_13


spring 业务层注解Mapper为null spring各层注解_spring_14


6、@RunWith


spring 业务层注解Mapper为null spring各层注解_mybatis_15


例如:


spring 业务层注解Mapper为null spring各层注解_数据_16


7、@ContextConfiguration


spring 业务层注解Mapper为null spring各层注解_java_17


作用:添加的是Spring管理的主要配置类

例如:


spring 业务层注解Mapper为null spring各层注解_java_18


8、@EnableAspectJAutoProxy

作用:在配置类上面进行添加,表示spring中存在AOP。


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_19


9、@Aspect

作用:在通知类上面添加注解。


spring 业务层注解Mapper为null spring各层注解_java_20


通常是和四个注解一起使用:@EnableAspectJAutoProxy、@Aspect、@Pointcut和@Before组成Spring中的AOP开启。

10、@EnableTransactionManagement

作用:在spring主配置中进行添加,开启事务支持


spring 业务层注解Mapper为null spring各层注解_spring_21


11、RequestMapping(映射路径)

作用:使得前端可以访问请求到后端,使得被请求后执行后端的该路径位置的程序和返回前端相应的数据。


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_22


例如:前端访问


spring 业务层注解Mapper为null spring各层注解_spring_23


就会访问到后端的这个位置:


spring 业务层注解Mapper为null spring各层注解_java_24


12、@ResponseBody

作用:使得数据以json的格式返回到前端


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_25


例如:


spring 业务层注解Mapper为null spring各层注解_mybatis_26


13、@EnableWebMvc(SpringMVC接收和json数据)

作用:在SpringMVC配置类中添加注解,方便来自前端json的接收,即后端对接收的json数据进行接收。


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_27


14、@RestController

作用:快速开发RESTFUL风格。将原来的注解进行合并


spring 业务层注解Mapper为null spring各层注解_数据_28


15、@RestControllerAdvice(REST风格的异常处理)


spring 业务层注解Mapper为null spring各层注解_spring_29


通常还和注解@ExceptionHandler进行配合使用,用于处理指定的某些异常。

注:确保SpringMvcConfig能够扫描到异常处理器类

二、方法上添加注解

1、@PostConstruct

作用:bean初始化,在调用方法前就启动了。


spring 业务层注解Mapper为null spring各层注解_数据_30


2、@PreDestroy

作用:在bean方法结束前使用,通常需要和ctx.close():该语句是关闭容器IOC,不关闭毁灭的方法来不及加载。


spring 业务层注解Mapper为null spring各层注解_数据_31


3、@bean


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_32


4、@Pointcut

作用:在通知类内部添加一个属性,作为与需要增强的连接点连接的切入点。在该属性上面进行添加@Pointcut注解。


spring 业务层注解Mapper为null spring各层注解_mybatis_33


5、@Before、@After、@AfterReturning、@AfterThrowing和@Around

作用:实际上就是切面,表示和通知方法与切入点之间的关联


spring 业务层注解Mapper为null spring各层注解_数据_34


其他的通知类注解:


spring 业务层注解Mapper为null spring各层注解_数据_35


spring 业务层注解Mapper为null spring各层注解_数据_36


spring 业务层注解Mapper为null spring各层注解_mybatis_37


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_38


回环通知的注意:


spring 业务层注解Mapper为null spring各层注解_spring_39


6、@Transactional


spring 业务层注解Mapper为null spring各层注解_数据_40


7、@GetMapping @PostMapping@PutMapping@DeleteMapping

作用:替换原来这些重复的内容,进行注解替换


spring 业务层注解Mapper为null spring各层注解_java_41


spring 业务层注解Mapper为null spring各层注解_mybatis_42


8、@ExceptionHandler

作用:通常处理指定的异常。


spring 业务层注解Mapper为null spring各层注解_spring_43


放置于专门处理异常类中。这个异常类通常需要在类上面添加注解@RestControllerAdvice

三、属性上添加注解

1、@Autowired和@Qualifier

作用:给setter注入和构造器注入进行配置,去掉了这些注入,在属性上进行添加注解


spring 业务层注解Mapper为null spring各层注解_数据_44


1、如果存在多个bean的情况发生,但是属性的bean和IOC容器的bean相同时,会采取的是按照名称进行查询。虽然@Autowired是按照类型进行查询的,但这种情况下是可以对多个bean进行按照名称查询。

例如:


spring 业务层注解Mapper为null spring各层注解_spring_45


2、如果IOC容器中的名称和属性的名称不一致,那么需要使用@Qualifier,来指定注入那个名称的bean对象。


spring 业务层注解Mapper为null spring各层注解_spring_46


spring 业务层注解Mapper为null spring各层注解_mybatis_47


spring 业务层注解Mapper为null spring各层注解_spring_48


spring 业务层注解Mapper为null spring各层注解_数据_49


2、@Value

作用:普通数据类型的注解,注意@value后面的参数和属性的数据类型保持一致。


spring 业务层注解Mapper为null spring各层注解_java_50


spring 业务层注解Mapper为null spring各层注解_java_51


四、参数上添加注解

1、@RequestParam

作用:解决前端的参数名称和后端参数名称不一致的情况,将前端的参数名称转换成后端的参数名称。

例如:


spring 业务层注解Mapper为null spring各层注解_数据_52


后端的参数名称是:userName。前后不一致,导致数据无法匹配接收。


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_53


也用在集合参数中:

例如:


spring 业务层注解Mapper为null spring各层注解_数据_54


spring 业务层注解Mapper为null spring各层注解_数据_55


2、@RequestBody

作用:接收json的数据,必须在形参位置处进行添加该注解


spring 业务层注解Mapper为null spring各层注解_数据_56


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_57


注解对比:@RequestParam和@RequestBody


spring 业务层注解Mapper为null spring各层注解_数据_58


3、@PathVariable

作用:传递参数信息


spring 业务层注解Mapper为null spring各层注解_mybatis_59


例如:


spring 业务层注解Mapper为null spring各层注解_Powered by 金山文档_60