常用注解(@)

 在这里总结一些常用注解,目的是为了在读别人的代码或自己写代码时带来方便。还不全 待完成。

基础:

@Controller 控制层

 

@RestController 控制层:如不需要返回页面 可以用这个 = @ResponseBody + @Controller 这个控制层里面就不需要再写 @ResponseBody注解了

 

@ControllerAdvice controller增强器,在SpringBoot中可直接使用。(@RestControllerAdvice 也类似)最常用的地方就是:
    1.异常处理Controller ,与注解 @ExceptionHandler(xxxException.class)配合使用,可有多个方法不同方法处理不同异常。
    2.与注解 @ModelAttribute 配合使用,在执行目标 Controller 方法前调用 该方法。可做全局数据绑定。
    3.与注解 @InitBinder 配合使用,全局数据预处理,

 

@ResponseBody 一般用于控制层 把java 对象转成json对象返回到前台

 

@RequestMapping("/xxxx") 一般用于控制层 处理请求与方法之间的映射关系

 

@GetMapping = @RequestMapping(method = RequestMethod.GET)从服务器取出资源
@PostMapping = @RequestMapping(method = RequestMethod.POST)在服务器新建一个资源
@DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)从服务器删除资源
@PutMapping = @RequestMapping(method = RequestMethod.PUT)在服务器更新资源

 

@Autowired 依赖注入byType,spring 自带,默认对象必须存在,不存在可以设置required=false。如果想用byName可以与@Qualifier一起使用。

 

@Service 业务层

 

@Repository 数据访问层,DAO层会用到

 

@Qualifier 如注入时找到多个相同类型的bean,可以通过这个注解指定装配哪个bean。比如:@Service里面的名字写到@Qualifier中。 放在调用的方法上面。

 

@Primary 如注入时找到多个相同类型的bean,可以通过这个注解指定默认注入哪一个。放在默认被调用的方法上面。

 

@Resource 依赖注入默认byName,可指定name和type,不是spring的注解(javax.annotation.Resource)但spring支持该注解。

 例子:

@Autowired
@Qualifier(value = "xxx")

 

@Component 把Bean注入到spring容器中,让spring管理。泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

 

@Order(xxx) Spring容器加载Bean的顺序 @Order(-1000)优先于 @Order(-1)

 

@DependsOn("xxx") 类上方法上初始化的顺序,顾名思义,该类或方法需要另一个类方法的支撑,在加载之前先加载xxx。

 

@Override 重写父类的方法

 

@Scope(x) spring中Bean 默认为单例。
   singleton 单例模式。一个实例、
   prototype 原型模式。每次获取都有一个新的实例、
   request、Bean在每一次http request中是单例。每一次HTTP请求都会产生一个新的bean。spring web
   session、Bean在每一次http session中是单例每一次HTTP请求都会产生一个新的bean。spring web
   globalsession 类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义。

 

@Bean 把Bean对象交给Spring管理,与@Configuration 注解配合使用

 

@Configuration 类级别的注解,用于定义配置类,可替换xml配置文件。
  xml中: <bean/> 对应Java中@Bean 实例化bean、
  xml中: <context:component-scan/> 对应Java中@ComponentScan 等等
  类不可以是final类型、不可以是匿名类、嵌套的configuration必须是静态类

 

@ComponentScan("com.xxx.xxx.xxx") 扫描包下的所有组件

 

@PathVariable("xxxx")把url中的{xxx} 绑定到方法中

 

@RequestParam 请求参数绑定到控制器方法上,
  第一个参数是参数的名字,第二个参数默认true ,请求路径中如果不包含该参数报错,第三个参数defaultValue 默认值,没传这个参数取默认值。

 

mybatis:

@Param 一般用于mapper,与xxxmapper.xml中的参数对应。import org.apache.ibatis.annotations.Param;

 

@Insert (insert into xxxx) 增
@Delete (xxxx) 删
@Update (xxxx)改
@Select (xxxx)查

 

 

 

@

posted @ 2020-11-05 07:59  DarGi  阅读(982)  评论(0编辑  收藏  举报