Spring常用注解
Spring部分1.声明bean的注解@Component 把普通pojo实例化到spring容器中(泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。)@Service 用于标注服务层,主要用来进行业务的逻辑处理(service层)@Repository 用于标注数据访问层,也可以说用于
@Resource:byName进行自动注入
(@Resource(name="baseDao")
private BaseDao baseDao;
@Autowired:byType进行自动注入(应该就是根据bean的name和class属性进行选择的)
@Value:通过@Value(“${}”) 可以获取对应属性文件中定义的属性值。
@Value("${init.password}")
private String initPwd;
有的时候我们可能需要注入静态变量,用于静态方法的引用,那么我们通过这种方式获取到的值是一个null,也就是没获取到值,我们可以把@Value注解加到set方法上,来注入配置。
private static String userName;
@Value("${susan.test.userName}")
public void setUserName(String userName) {
UserService.userName = userName;
}
public String test() {
return userName;
}
@Scheduled(cron = "0 0 9 * * ? ") 表示每天九点定时执行
@Scheduled(fixedDelay=10000)表示上一个任务执行结束10秒后执行
@Scheduled(fixedRate=10000)表示上一个任务执行开始10秒后执行
@NoArgsConstructor:无参构造
@AllArgsConstructor:有参构造(所有参数)
@Data:get set方法 还有toString方法,
@Service用于标注业务层组件
@Controller用于标注控制层组件(如struts中的action)
@RestController:可以给前端返回字符串(可以看我的关于RestCintroller的文章)
@Repository用于标注数据访问组件,即DAO组件
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Slf4j是用作日志输出的,一般会在项目每个类的开头加入该注解,如果不写下面这段代码,并且想用log,就可以使用这个注解进行代替,可以直接使用log.info()打印日志。
@RequestBody 简单来说就是在一个接口里,也就是一个controller里,你封装了一个对象来接收前端传过来的参数,这个时候需要在对象上加@RequestBody注解,用法如下,但是记得对象里的属性名字要和前端传的参数对应
@PostMapping("/saveTableHead")
public ApiResponse saveTableHead(@RequestBody BankFileInstall bankFileInstall) {
return ApiResponse.createApiResponse("", HttpStatusEnum.SUCCESS);
}
@Param注解:
当以下面的方式进行写SQL语句时:虽然例子里参数写了一个,但是可以写多个,例如userName,password等,在前面加上@Param注解即可
@Select("select column from table where userid = #{userid} ")
public int selectColumn(int userid);
当你使用了使用@Param注解来声明参数时,如果使用 #{} 或 ${} 的方式都可以。
@Select("select column from table where userid = ${userid} ")
public int selectColumn(@Param("userid") int userid);
不使用@Param注解时, 参数只能有一个,并且是Javabean(对象)。在SQL语句里可以引用JavaBean的属性,而且只能引用JavaBean的属性。
// 这里id是user的属性
@Select("SELECT * from Table where id = ${id}")
Enchashment selectUserById(User user);
@Transactional: 是声明式事务管理 编程中使用的注解,用于管理事务
还有注解就是 javax.validation 包下的一些校验参数的
这个还要注意嵌套校验 需要加@Valid注解
@inherited 注解详解
这个注解如果加载一个注解上代表这个注解是可以被子类继承的
@ComponentScans 注解:
扫描主启动类同级以外的包目录
通配符 com.xxx.* 属性basePackages={} 中括号里边是一个数组,每个元素用逗号分隔
更多推荐
所有评论(0)