【博学谷学习记录】超强总结,用心分享。SSM框架的注解开发

1.MyBatis使用的注解

  @Select注解:查询操作的,加在声明方法上

  @Insert注解:插入操作

  @Update注解:更新操作

  @Delect注解:删除操作

  @Param注解:作用是给参数起别名

 

2.Spring使用的注解

 

  @Autowired:自动装配,使用在字段上用于根据类型依赖注入

   直接用在属性上,或者set方法上

   需要导入spring-aop的包!

    先按byName的模式寻找(找与set方法后半段名字相同的id),如果找不到,再使用byType寻找(class对应的类型要唯一)。

    如果不唯一则可启用@Qualifier注解

    @Qualifier(value=“在配置文件中其二的id”)

    @Qualifier与@Autowired 需要成对出现

    @Autowired(required=false) 说明:false,对象可以为null;true,对象必须存对象,不能为null。

  @Resource 实现依赖注入

    @Resource和@Autowired注解都是用来实现依赖注入的。只是@AutoWried按by type自动注入,而@Resource默认按byName自动注入

  

  @autowired 与 @resources 区别

    都是依赖注入的注解。

    前者是根据类型去匹配注入到ioc 后者是根据id 的名字去匹配注入到ioc

    @autowired 通过类型去匹配有缺点:当一个父类有两个子类时,通过父类向下转型去匹配注入ioc时,会报错,有两个匹配。

    @autowired 怎么解决这个问题呢?使用@qualifer("by name")去通过具体的name去注入ioc

    @Resource 默认通过by name 去注入ioc

    @Resource 想要通过by type 注入ioc则 @Resource(type=LaService.class)
 

 @Repository  使用在dao层类上用于实例化Bean

  @Component Spring容器的标签

    作用于类上方,等价于在spring配置文件中的标签

    @Component有几个衍生注解,在web开发中,会按照mvc三层架构分层

      dao 层中 使用 @Repository
      service 层中 使用 @Service
      controller 层中 使用 @Controller
      这四个注解功能相同,都代表将某个类注册到Spring容器中,装配bean
 

  @Value注解  相当于属性

    使用在属性或set方法上,@Value(“值”),等价于在spring配置文件中的标签内的标签,为属性赋值

  
   @Scope 作用域

  

  @Configuration 代表下面这个类是配置类

  @ComponentScan 扫描器,添加文件路径下的类进入容器中

  @Import 导入合并其他的配置类

  @Bean 通过方法注册一个bean,这里的返回值就是Bean的类型,方法名就是bean的

  @Aspect 代表这个类是一个切面

  @Before 切入点前

  @After 切入点后

  @Around 环绕切入点

 

 

3.SpringMVC、SpringBoot

  @RequestMapping 映射关系路径

  @Controller 与@Component同作用,且相当于实现了Controller类

  @EnableWebMvc 配置好Spring Webmvc。

  @PropertySource("classpath:jdbc.properties")   加载properties类

  @PathVaribale  让方法参数的值对应绑定到一个URI模板变量上(接收请求路径中占位符的值)

  @RequestParam 将参数改名为@RequestParam(“值”)中的值,原来的参数名,不再能使用

  @RestController  包含@Controller @ResponseBody 一个控制类,一个是响应体

  @ExceptionHandler(Exception.class)  异常拦截器,自定义异常

4.MyBatisPlus

  @Data 实体类上方的注解,可以替代getter、setter方法,但是没有构造方法

  @TableField(value=“数据库字段名称”) 解决数据库名称和实体类名称不一致的问题

  @TableField(exist=false)实体类新属性上面,解决编码中实体类添加了新的属性,但是数据库中没有定义的这个属性的问题

   @TableName(“数据库名称”)数据库表名称和实体类名称不一致

  @TableId(type = IdType.AUTO) 自增id

   @TableLogic(value = "0",delval = "1") 逻辑删除操作

  @Version乐观锁

 

posted @ 2022-08-28 21:06  LINwenguan  阅读(56)  评论(0)    收藏  举报