注解 | 说明 | 举例 |
---|---|---|
@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 的自动扫描功能: <beans … > …… <context:component-scan base-package=”bookstore.dao” /> …… </ beans> |
@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; |
本文含有隐藏内容,请 开通VIP 后查看