Zhangxu's Blog.

Spring Boot的一些注解

Word count: 728 / Reading time: 3 min
2018/08/13 Share

总结下SpringBoot的一些注解

mybatis

依赖

1
2
3
4
5
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>

项目启动 Application 上的注解,配置 mybatis 的扫描路径

1
@MapperScan(basePackages = "com.xxx.dataobject.mapper")

@Select等中写sql语句,传入 参数/对象属性/Map的键,通过 #{categoryType}格式化至sql,@Results将查询到的字段和方法返回对象的属性映射起来。

1
2
3
4
5
6
7
8
@Select("select * from product_category where category_type=#{categoryType}")
@Results({
@Result(column = "category_name", property = "categoryName"),
@Result(column = "category_id", property = "categoryId"),
@Result(column = "category_type", property = "categoryType"),

})
ProductCategory findByCategoryType(Integer categoryType);

传入多个参数时需要使用@Param将传入参数和sql中的格式化变量对应起来。

1
2
@Update("update product_category set category_name = #{categoryName} where category_type = #{categoryType}")
int updateCategoryType(@Param("categoryName") String categoryName, @Param("categoryType") Integer categoryType);

自动配置 get/set方法

引入依赖

1
2
3
4
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

之后可以在类上面加上 @Getter@Setter注解自动配置所有成员变量对应方法,@Data是二者都配置。

加上 @Slf4j注解后可以直接以如下形式输出日志,非常方便:

1
log.warn("【登陆校验】会话过期");

SpringBoot相关

加上这两个注解的配置类,可以从 application.yml等配置文件中加载配置

1
2
@Component
@ConfigurationProperties(prefix = "some-config")

@Component@Bean配合使用,实现对某类的自动化配置,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Component
public class WechatMpConfig {

@Autowired
private WechatAccountConfig accountConfig;

@Bean
public WxMpService wxMpService(){
WxMpService wxMpService = new WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(wxMpConfigStorage());
return wxMpService;
}

@Bean
public WxMpConfigStorage wxMpConfigStorage(){
WxMpInMemoryConfigStorage wxMpConfigStorage = new WxMpInMemoryConfigStorage();
wxMpConfigStorage.setAppId(accountConfig.getMpAppId());
wxMpConfigStorage.setSecret(accountConfig.getMpAppSecret());
return wxMpConfigStorage;
}
}

@Autowired是将某个依赖注入进来的注解。

配置在执行某些类方法前后需要所执行的操作。

1
2
3
4
5
6
7
8
9
10
11
@Aspect  //类注解
@Component
@Pointcut("execution(public * com.imook.sell.controller.Seller*.*(..))"+
"&&!execution(public * com.imook.sell.controller.SellerUserController.*(..))")
public void verify(){}

@Before("verify()") //方法注解
public void doVerify(){...}

@After("verify()")
...

1
2
3
4
5
6
@RestController //RestController 返回json对象
@Controller // 返回模版文件或重定向等

@RequestMapping("/wechat") //配置整个Controller的路径
@GetMapping("/authorize") // Controller的方法注解 Get请求
@PostMapping("/create") // Controller的方法注解 Post

参数注解@Valid多用于Post请求提交表单的验证,即该参数对象的属性要通过验证,比如该参数对象的某属性加了@NotEmpty注解,那么他就不能为空。

参数注解@RequestParam是声明某参数是来自于请求的,也可对该参数设置默认值,如:

1
@RequestParam(value = "page", defaultValue = "0") Integer page

1
2
3
4
5
6
7

@Entity //映射表实体的类
@DynamicUpdate //某些字段 自动更新

@Id //字段注解 表的 ID
@GeneratedValue //字段注解 自增长
@JsonIgnore //接口返回时不返回该字段
1
2
3
4
@ControllerAdvice // 拦截异常,自定义返回内容
@ExceptionHandler(value = SellerAuthorizeException.class) //需要拦截的异常
@ExceptionHandler(value = SellException.class)
@ResponseBody //以JSON形式返回
1
@Service //服务层类注解
CATALOG
  1. 1. mybatis
  2. 2. 自动配置 get/set方法
  3. 3. SpringBoot相关