在这里总结一些常用注解,目的是为了在读别人的代码或自己写代码时带来方便。还不全 待完成。
基础:
@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)查
@