springboot常用注解

附录:常用注解

注解 说明 举例
@Mapper @Mapper注解是MyBatis框架中的一个注解,它的作用是将一个Java接口标记为一个MyBatis的Mapper,使得这个接口可以被MyBatis框架自动扫描并生成对应的实现类。
@MapperScan 如果多个接口都要变成实现类,那么需要在每个接口类上加上@Mapper注解,这样比较麻烦,我们通常会使用@MapperScan这个注解 @MapperScan(value = {"com.example.demospringboot"})
public class DemospringbootApplication {
@Repository @Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即可。 // 首先使用 @Repository 将 DAO 类声明为 Bean:
package bookstore.dao;
@Repository
public class UserDaoImpl implements UserDao{ …… }
@Bean 同时,为了让 Spring 能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用Bean 的自动扫描功能,这可以通过context:component-scan/实现 // 其次,在 XML 配置文件中启动 Spring 的自动扫描功能:

……

……
@Component Spring 2.5 在 @Repository的基础上增加了功能类似的额外三个注解,它们分别用于软件系统的不同层次:
@Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。
通过在类上使用 @Repository、@Component、@Service 和 @Constroller 注解,Spring会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。这些类就成了 Spring受管组件。这三个注解除了作用于不同软件层次的类,其使用方式与 @Repository 是完全相同的。
@Service @Service 通常作用在业务层,但是目前该功能与 @Component 相同。
@Controller
@Constroller 通常作用在控制层,但是目前该功能与 @Component 相同。
@Scope 为了配合这四个注解,在标注 Bean 的同时能够指定 Bean 的作用域,Spring2.5 引入了 @Scope 注解。使用该注解时只需提供作用域的名称就行了 @Scope(“prototype”)
@Repository
public class Demo { … }
@Configuration 表明某个类是配置类 @Configuration
public class AppConfig {
@Bean
public MyBean myBean() {
// instantiate, configure and return bean …
}
}
@ResponseBody 将Controller的方法返回的对象,通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据
@RestController 相当于@ResponseBody + @Controller合在一起的作用;无法返回jsp页面,返回的内容就是Return 里的内容
@RequestMapping 用来处理请求地址映射的注解,可用于映射一个请求或一个方法,可以用在类或方法上;@RequestMapping 的 value 属性必须设值,通过当前请求的请求地址来匹配请求;
@PostMapping 处理post方式请求的映射
@GetMapping 处理get方式请求的映射;相当于@RequestMapping(method=RequestMethod.GET),它会将get映射到特定的方法上
@Entity 表示该类是一个实体类,在项目启动时会根据该类自动生成一张表,表的名称即@Entity注解中name的值,如果不配置name,默认表明为类名 @Entity(name = “t_book”)
@Data 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法 @Setter : 注在属性上,提供 set 方法
@Getter : 注在属性上,提供 get 方法
@EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法
@NoArgsConstructor 注在类上,提供类的无参构造 @AllArgsConstructor : 注在类上,提供类的全参构造
@Table 对应的数据表名。对象映射到数据库的数据表,通过它可以为实体指定表(table)
@Id 主键
@GeneratedValue 主键生成策略 @Entity
@Data
@NoArgsConstructor
public class User {
@Id
@GeneratedValue
private Integer id;

}
@Log4j/@Slf4j 注在类上,提供对应的 Logger 对象,变量名为 log
@Param 一般用于mybatis中mapper与map.xml中的参数对应。其他:
@Insert (insert into xxxx) 增
@Delete (xxxx) 删
@Update (xxxx)改
@Select (xxxx)查

@Select("SELECT * FROM t_user WHERE USERNAME= #{username}")
User findByName(@Param(“username”) String name);
@Async 在方法上加入这个注解,spring会从线程池中获取一个新的线程来执行方法,实现异步调用
@EnableAsync 表示开启对异步任务的支持,可以放在springboot的启动类上,也可以放在自定义线程池的配置类上
@value 用来注入外部化配置文件或者系统属性的值 @Value(“${example.property}”)
private String exampleProperty;

你可能感兴趣的:(JAVA进阶,spring,boot,java,后端)