spring相关
@Controller
【控制器】效验有效参数的合法性(相当于安检系统)
@Service
【服务】业务组装(客服中心)
@Repository
【数据持久层】实际业务处理(实际办理的业务)
@Component
【组件】工具类层(基础的工具)
@Configuration
【配置层】配置
上面四个注解功能是一样的,都可以用来创建bean实例
2.注入,装配
(1)@Autowired:
根据属性类型进行自动装配,默认按类型装配(byType)自动装配
- 作用于:标注 引用类型的构造器,方法,方法参数,注解
(2)@Resource:
可以根据类型注入,可以根据名称注入(byName),标注 类,字段,方法:
(3)@Qualifier:
根据名称进行注入,这个@Qualifier注解的使用,和上面@Autowired一起使用,
如果有多个类型一样的Bean候选者,则需要限定其中一个候选者
(4)@Value:注入普通类型属性
注解在属性上,单个注入
支持 SpEL
- 从配置文件读取值
@Value("${property}")
@Value("${property:默认值}")
- SpEL
@Value(“#{SpEL表达式}”)
@ConfigurationProperties
通过指定的前缀,绑定配置文件中的配置
可以注解在类上,也可以放在@Bean的方法上。批量注入配置文件中的属性
一般用于多个数据源的配置,读写分离
@PropertySource
加载指定的配置文件
@ImportResource
标注在一个配置类,导入Spring的配置文件让其生效
Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别。
需要用@ImportResource加载生效
3.完全注解开发
创建配置类,替代xml配置文件
@Configuration :
作为配置类,替代xml配置文件
@ComponentScan(basePackages = {“包名”}):
开启注解扫描
4.在增强类上面添加注解
@Aspect,可与@Component注解一起使用生成代理对象
5.AOP相关
在增强类的里面,在作为通知方法上面添加通知类型注解,使用切入点表达式配置
(1)@Before:表示作为前置通知
(2)@After:最终通知
(3)@AfterReturning:后置通知(返回通知)
(4)@AfterThrowing:异常通知
(5)@Around:环绕通知
(6)@Pointcut:用于相同的切入点抽取
6.bean的生命周期
-
@Scope("作用域")
作用范围设置 -
@PostConstruct
初始化 Java自己的注解 @PreDestroy
销毁
7.SpringMVC
@Component的衍生注解
@Controller 标注类 : 对应 Spring MVC 控制层Controller对象,主要用于接受用户请求并调用 Service 层返回数据给前端页面。
@Service 标注类 : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao层。
@Repository 标注类 : 对应持久层即 Dao 层,主要用于数据库相关操作。
http Request 请求处理方法映射
@RequestMapping标注类,
方法 : http路径映射到处理类或方法
@GetMapping() 标注方法 :
http GET请求路径映射
@PostMapping()标注方法 :
http POST请求路径映射
@PutMapping标注方法 :
http PUT请求路径映射
@DeleteMapping标注方法 :
http DELETE请求路径映射
前端>后端传值
@PathVariable
获取 路径参数
@RequestParam
获取 请求参数 url中的?后面的参数
@RequestBody
获取 请求Body中JSON字符串
后端>前后端传值
@Controller
返回一个视图
@ResponseBody
标注类,方法: 用于Controller方法返回的对象,写入http的body区
@RestController
标注类: = @Controller + @ResponseBody
MyBatis注解
mapper
@Mapper
在接口类上添加,该接口是mapper@MapperScan(value)
包下面的所有接口都是mapper
value:指定mapper接口类包路径
basePackages = 扫描包、类
sqlSessionFactoryRef = SqlSessionFactory Bean对象名
sqlSessionTemplateRef = sqlSessionTemplate Bean对象名
sql语句配置
@Select(“select * from user”)
@Insert(" insert into user ( name ) values (#{name}) ")
@Delete(" delete from user where id= #{id} ")
@Update("update user set name=#{name} where id=#{id} ")
其他
@Data : 标注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
异常处理
@ControllerAdvice + @ExceptionHandler
@ControllerAdvice 表
示控制器通知类,@ExceptionHandler 是异常处理器,两个结合表示当出现异常的时候执⾏某个通知,也就是执⾏某个⽅法事件
AOP
@Aspect 切面
@Join Point 连接点
@Pointcut切点
@Advice通知
- 前置通知使⽤ @Before:通知⽅法会在⽬标⽅法调⽤之前执⾏。
- 后置通知使⽤ @After:通知⽅法会在⽬标⽅法返回或者抛出异常后调⽤
- 返回之后通知使⽤ @AfterReturning:通知⽅法会在⽬标⽅法返回后调⽤。
- 抛异常后通知使⽤ @AfterThrowing:通知⽅法会在⽬标⽅法抛出异常后调⽤。
- 环绕通知使⽤ @Around:通知包裹了被通知的⽅法,在被通知的⽅法通知之前和调⽤之后执行自定义的⾏为。
持续补充中~~~~~~~~~~