SpringBoot常用注解

1、bean相关注解

注解名作用
@Component将类交给SpringBoot管理
@Repository放在dao层
@Service放在service层,即业务服务层
@Controller放在控制层,即handler层
@RestController@Response和@Controller的组合注解,返回的是JSON数据
@Configuration声明一个类为配置类,常和Bean、Scope注解组合使用
@SpringBootConfiguration标注在类上,说明这个类是SpringBoot的主配置类,SpringBoot要运行这 个类的main方法来启动Spring应用
@SpringBootApplicationSpring Boot 的核心注解是@SpringBootApplication,它也是启动类使用的注解
@EnableAutoConfiguration具有打开自动配置的功能,也可以关闭某个自动配置的选项。
@ComponentScan用于Spring组件扫描。
@Autowired由Spring提供,只按照byType自动注入
@Resource由J2EE提供,默认按照byName自动注入
@Bean等价于bean标签,一般标注在方法上,默认为单例模式
@Scope声明该bean的作用域,有singleton、prototype、request、session

注意:@SpringBootApplication,它也是启动类使用的注解,主要包含了 3 个 注解:
@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan

2、配置启动相关注解

注解名作用
@SpringBootApplicationSpring Boot 的核心注解是@SpringBootApplication,它也是启动类使用的注解
@SpringBootConfiguration标注在类上,说明这个类是SpringBoot的主配置类,SpringBoot要运行这 个类的main方法来启动Spring应用
@ComponentScan用于Spring组件扫描。
@EnableAutoConfiguration具有打开自动配置的功能,也可以关闭某个自动配置的选项。
@Configuration声明一个类为配置类,常和Bean、Scope注解组合使用
@Conditional根据代码中设置的条件装载不同 的 bean,也是SpringBoot实现自动配置的基石。
@ConditionOnBean配置了某个特定的Bean时条件为真。
@ConditionalOnMissingBean没有配置特定的Bean时条件为真。

3、Http请求相关注解

注解名作用
@RequestMapping映射及请求的路径
@GetMapping等价于 @RequestMapping(value=“/test”,method=RequestMethod.GET)
@PostMapping等价于 @RequestMapping(value=“/test”,method=RequestMethod.POST)
@DeleteMappingRestful风格的删除请求注解

注意:@RequestMappping

1、 value、method value: 指定请求的实际地址,指定的地址可以是URI Template模式; method:指定请求的method类型:(HTTP协议规定)GET、POST、PUT、DELETE、HEAD、OPTIONS、 PATCH等;

2、 consumes、produces consumes:指定接收的处理请求的提交内容类型(Content-Type); produces: 指定返回的内容类型,仅当request请求头中包含该指定类型才返回, Content Type:text/html; charset=UTF-8;

4、参数绑定相关注解

注解名作用
@RequestParam用在方法的参数前面,获取请求中表单类型的key=value格式的数据。
@PathVariable用于获取请求路径中的参数。
@RequestBody获取请求 body 中的数据,常用于搭配 @PostMapping 请求来提交对象数据.
@ResponseBody该方法的返回结果直接写入 HTTP response body 中,格式为 json
@Param为SQL语句中参数赋值而服务的,参数名和sql语句不同时使用

@Param:

public User selectUser(@Param("userName") String name,@Param("password") String pwd);

@RequestParam:

@RequestParam注解是作用在controller层上的,它可以将前端发送的请求参数绑定到controller层的方法参数上。根据真是业务需求有时方法参数并不需要传递该参数,则可以通过使用该注解来达到这个目的。例如:

@ApiOperation(value = "班级列表")
@GetMapping("/class/list")
public Message.DataRespone<UOrganizationClass> organizationClassList(
        //不写required 查看其默认是否为true
        @RequestParam(value = "organizationId") Integer organizationId,
        int schoolId,
        @RequestParam(required = true, defaultValue = "") String className,
        @RequestParam(required = false, defaultValue = "") String openYear,
        PageVo pageVo) {
    SSystemUser systemUser = getUserInfo();
    //organizationId = getCanCtrlOrganizationId(organizationId);
    //如果没有传organizationId就从token中获取organizationId
    if (organizationId == null || "".equals(organizationId)) {
        organizationId = systemUser.getOrganizationId();
    }
    int dataLevel = getUserDataLevel();
    PageInfo<UOrganizationClass> result = organizationService.listClass(systemUser.getId(), organizationId, schoolId, dataLevel, className, openYear, pageVo.getPageNumber(), pageVo.getPageCount());
    return Message.Success.createWithPageInfo(result);
}

在文件上传时也可以使用。

5、读取配置相关注解

注解名作用
@Value在任意 Spring 管理的 Bean 中通过这个注解获取任何来源配置的属性值
@ConfigurationProperties类似@Value注解,但这个里面可以自定义前缀等信息
@PropertySource指定读取自定义的配置文件,参数填写路径。

@PropertySource注解:
用于指定资源文件读取的位置,它不仅能读取properties文件,也能读取xml文件,并且通过YAML解析器,配合自定义PropertySourceFactory实现解析YAML文件。spring会使用默认的DefaultPropertySourceFactory解析。

@Configuration
@ComponentScan(basePackages = "propertysourcedemo")
//这次使用file协议的url路径来解析
@PropertySource(value = "file:///D:/spring-high-level-study/src/main/resources/daoconfig/datasource-config.properties")
public class SpringConfig {
 
    //通过SPEL表达式注入属性
    @Value("${druid.driverClassName}")
    private String driverClassName;
 
    @Value("${druid.url}")
    private String url;
 
    @Value("${druid.username}")
    private String username;
 
    @Value("${druid.password}")
    private String password;
 
 
 
    //注册Druid数据源连接池
    @Bean
    public DruidDataSource druidDataSource(){
        System.out.println("driverClassName====> " + driverClassName);
        System.out.println("url====> " + url);
        System.out.println("username====> " + username);
        System.out.println("username====> " + username);
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(driverClassName);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        druidDataSource.setPassword(password);
        return druidDataSource;
    }
}

6、JSON相关注解

注解名作用
@RequestBody主要用来接收前端传递给后端的json字符串中的数据(请求体中的数据);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
@ResponseBody返回数据是JSON数据

7、校验相关注解

注解名作用
@NotBlank被注释的字符串非 null,并且必须包含一个非空白字符
@Email被注释的元素必须是 Email 格式。
@Pattern(regex=,flag=)注释的元素必须符合指定的正则表达式
@Validjdk的注解,数据校验,定义在实体类中的属性上,接口类中的接收数据参数中添加之后实体类会开启一个校验的功能。如果在实体类中嵌套的实体类属性时,必须添加,否则校验无法生效
@Validatedspring的注解,比@Valid强大,数据异常会统一抛出异常,方便异常中心统一处理,判断一个输入参数是否合法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值