springboot常用注释的讲解

作者:Kikityer 时间:2023-11-03 02:53:15 

1:@Qualifier

@Qualifier 注释指定注入 Bean 的名称,这样歧义就消除了。所以@Autowired 和@Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。例子如下:

有一个接口:


public interface EmployeeService {
 public String getEmployeeById(Long id);
}

有两个实现类:


@Service("service")
public class EmployeeServiceImpl implements EmployeeService{
 @Override
 public String getEmployeeById(Long id) {
   return "0";
 }
}
@Service("service1")
public class EmployeeServiceImpl1 implements EmployeeService{
 @Override
 public String getEmployeeById(Long id) {
   return "1";
 }
}

controller层调用service层:


@RestController
public class EmployeeInfoControl {
 @Autowired
 @Qualifier("service")  //括号里面的值是实现类@service时给类取得名字,加上此注解不会报错
 private EmployeeService employeeService;

@RequestMapping("/emplayee.do")
 public void showEmplayeeInfo(){
   String employeeById = employeeService.getEmployeeById(1l);
   System.out.println("employeeById值为"+employeeById);
 }
}
//此时会报错 因为@Autowired
//       private EmployeeService employeeService;
//注入的是service层的接口,此时有两个实现,不知道绑定的是哪个实现。
//此时应该在@Autowired下面配合@Qualifier注释使用,用来说明要绑定的具体是哪个实现类
//如上面所示

2:@RestController

注解在类上,表示这是一个控制层bean。常用于控制层类的前面,是@ResponseBody和@Controller的合集 。

  • @ResponseBody:用该注解修饰的函数,会将结果直接填充到HTTP的响应体中,一般用于构建RESTful的api,将java对象转为json格式的数据。

  • @Controller:用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层)。

3:@RequestMapping

提供路由信息,负责URL到Controller中的具体函数的映射。

4:@SpringBootApplication

该注解用在运行类之上,相当于@EnableAutoConfiguration、@ComponentScan和@Configuration的合集。 

  • @EnableAutoConfiguration:Spring Boot自动配置(auto-configuration)。

  • @ComponentScan:表示将该类自动发现(扫描)并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入。

  • @Configuration:相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类 ——可以使用@ImportResource注解加载xml配置文件。

5:@Import

用来导入其他配置类。 

6:@Autowired 

自动导入依赖的bean。

7:@Service 

注解在类上,表示这是一个业务层bean。

8:@Repository

注解在类上,表示这是一个数据访问层bean。使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan。 

9:@Query  

自定义SQL查询语句 

10:@Entity  

用在实体类的前面,表示这是一个实体类。 

11:@Table(name=“”) 

用在实体类的前面,一般和@Entity一起使用,表示该实体类映射数据库中的某张表。

12:@Column

表示实体类的某个属性映射为表中的某个字段,包含的设置如下:name:数据库表字段名;unique:是否唯一 ;nullable:是否可以为空 ;Length:长度。

13:@Id

该注释用在实体类中,写在哪个属性的前面,表示该属性映射到数据库中的字段为主键。

14:@GeneratedValue 

表示主键的生成策略,和@Id一起使用 

15:@Transient 

表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient。 

来源:https://blog.csdn.net/weixin_40581455/article/details/85008995

标签:springboot,常用注释
0
投稿

猜你喜欢

  • java多线程实现下载图片并压缩

    2023-01-17 22:28:34
  • Android将项目导出为Library并在项目中使用教程

    2022-01-31 14:57:17
  • Java class文件格式之常量池_动力节点Java学院整理

    2023-04-14 07:14:06
  • Android 实现签到足迹功能

    2023-06-21 15:16:24
  • java通过AES生成公钥加密数据ECC加密公钥

    2023-08-04 10:09:53
  • C#中的尾递归与Continuation详解

    2022-07-27 04:14:05
  • spring 整合mybatis后用不上session缓存的原因分析

    2021-12-09 10:11:03
  • Spring基于AspectJ的AOP开发案例解析

    2021-12-01 01:59:22
  • Java Scala实现数据库增删查改操作详解

    2022-02-03 05:09:22
  • 阿里云发布 Spring Boot 新脚手架工程

    2023-10-08 04:43:12
  • Android使用SoundPool播放音效

    2021-11-24 02:32:36
  • Java设计模式初识之备忘录模式详解

    2023-08-29 23:27:09
  • 详解C#中的字符串拼接@ $

    2021-07-10 13:13:41
  • Android中扫描多媒体文件操作详解

    2022-06-02 09:06:53
  • Java 8中的18个常用日期处理(收藏)

    2023-03-02 02:01:54
  • 使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)

    2023-04-24 07:35:45
  • Java Comparable 和 Comparator 的详解及区别

    2023-07-05 10:41:44
  • SpringMVC文件上传 多文件上传实例

    2023-05-01 02:25:31
  • C#泛型约束的深入理解

    2023-02-21 09:32:19
  • spring cloud gateway请求跨域问题解决方案

    2021-11-05 11:19:25
  • asp之家 软件编程 m.aspxhome.com