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


猜你喜欢
- 本文实例讲述了C#实现对Json字符串处理方法,分享给大家供大家参考。具体分析如下:一般对于web应用开发人员来说对Json字符串都会很熟悉
- 效果如下: 布局文件activity_main.xml如下:<RelativeLayout xmlns:android="h
- 自动装配的含义在SpringBoot程序main方法中,添加@SpringBootApplication或者@EnableAutoConfi
- 这篇文章介绍使用设计模式中的策略模式和委托来解决多个IfElse判断语句和Switch语句,这种替换方式在其他语言也一样可以做到,比如PHP
- java 枚举的功能挺多,但是坑更多,使用的时候要注意。如下面这个枚举。@Getter@AllArgsConstructorpublic e
- java带T的时间格式化public static void main(String[] args) { &nb
- 成员内部类1.定义成员内部类是直接定义在类中,不加任何修饰符的(特指不加static修饰的)的内部类,可以类比着成员变量来理解,如下面这个代
- C#的FileInfo类提供了与File类相同的功能,不同的是FileInfo提供的都是成员方法,使用示例如下所示:1、读文件://创建只读
- Intro做项目的时候,页面上有一些敏感信息,需要用“*”隐藏一些比较重要的信息,于是打算写一个通用的方法。Let's do it
- 前言在Android开发中,View一直是Android开发人员的一块心病,一方面想要进阶,一方面又害怕进阶,可以说Android的View
- 今天从网上找了个例子实现了语音识别,个人感觉挺好玩的,就把代码贴出来与大家分享下: &nbs
- 下面给大家分享一小段代码给大家介绍C# 输出字符串到文本文件中,具体代码如下所示: public class WriteHelp
- volatile对 volatile的理解volatile 是一种轻量级的同步机制。保证数据可见性不保证原子性禁止指令重排序JMMJMM(J
- 本文实例为大家分享了C# picturebox实现画图功能的具体代码,供大家参考,具体内容如下在Form上添加 一个pictureBox,一
- 1. 通过设置采样率压缩res资源图片压缩 decodeResource public Bitmap decodeSampled
- 1. 基本用法<dependency> <groupId>org.redisson</groupI
- 最近在研究JSON,Java中有很多处理JSON的类库,lib-json、sf-json、fastjson还有Jackson Json。第一
- 本文实例讲述了C#采用HttpWebRequest实现保持会话上传文件到HTTP的方法,在项目开发中有一定的实用价值,具体方法如下:一、前言
- 一. 析构方法1. 概念我们现在已经知道,构造方法负责创建一个Java的类对象,并可以对该对象进行初始化。与此相对应的,其实还有一个方法,可
- @Lazy用于指定该Bean是否取消预初始化。主要用于修饰Spring Bean类,用于指定该Bean的预初始化行为,使用该Annotati