SpringBoot注解详解

Spring Boot注解汇总(详细) 提供了许多注解,这些注解使得开发者能够快速地配置和集成Spring应用程序。以下是一些常用的注解:这是一个组合注解,包含了和。包含三者的功能。举例:源代码:@Inherited)}//省略其他代码,详情参考具体源码2、这个注解包含了@Configuration,@Configuration里面又包含了一个@Component注解,也就是说,这个注解标注在哪个类上,就表示当前这个类是一个配置类,而配置类也是spring容器中的组件。 阅读详情
AI摘要

本文详细解读了SpringBoot中的各类核心注解,如@Controller、@RequestMapping、@Autowired等,助你理解和运用SpringBoot开发高效项目

一、简介

基于 SpringBoot 平台开发的项目数不胜数,与常规的基于Spring开发的项目最大的不同之处,SpringBoot 里面提供了大量的注解用于快速开发,而且非常简单,基本可以做到开箱即用!

那 SpringBoot 为开发者提供了多少注解呢?我们该如何使用?

针对此问题,小编特意对其进行了一番整理,内容如下,个人感觉还是比较清晰的,今天我们就一起来整一整每个注解的含义和用法,以免踩坑!

二、注解总结

2.1. SpringMVC 相关注解

  • @Controller

通常用于修饰controller层的组件,由控制器负责将用户发来的URL请求转发到对应的服务接口,通常还需要配合注解@RequestMapping使用。

  • @RequestMapping

提供路由信息,负责URL到Controller中具体函数的映射,当用于方法上时,可以指定请求协议,比如GET、POST、PUT、DELETE等等。

  • @RequestBody

表示请求体的Content-Type必须为application/json格式的数据,接收到数据之后会自动将数据绑定到Java对象上去

  • @ResponseBody

表示该方法的返回结果直接写入HTTP response body中,返回数据的格式为application/json。

比如,请求参数为json格式,返回参数也为json格式,示例代码如下:

/**
 * 登录服务
 */
@Controller
@RequestMapping("api")
public class LoginController {
 
    /**
     * 登录请求,post请求协议,请求参数数据格式为json
     * @param request
     */
    @RequestMapping(value = "login", method = RequestMethod.POST)
    @ResponseBody
    public ResponseEntity login(@RequestBody UserLoginDTO request){
     //...业务处理
        return new ResponseEntity(HttpStatus.OK);
    }
}
  • @RestController

和@Controller一样,用于标注控制层组件,不同的地方在于:它是@ResponseBody和@Controller的合集,也就是说,在当@RestController用在类上时,表示当前类里面所有对外暴露的接口方法,返回数据的格式都为application/json,示范代码如下:

@RestController
@RequestMapping("api")
public class LoginController {
 
    /**
     * 登录请求,post请求协议,请求参数数据格式为json
     * @param request
     */
    @RequestMapping(value = "login", method = RequestMethod.POST)
    public ResponseEntity login(@RequestBody UserLoginDTO request){
        //...业务处理
        return new ResponseEntity(HttpStatus.OK);
    }
}
  • @RequestParam

用于接收请求参数为表单类型的数据,通常用在方法的参数前面,示范代码如下:

/**
 * 登录请求,post请求协议,请求参数数据格式为表单
 */
@RequestMapping(value = "login", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity login(@RequestParam(value = "userName",required = true) String userName,
                            @RequestParam(value = "userPwd",required = true) String userPwd){
    //...业务处理
    return new ResponseEntity(HttpStatus.OK);
}
  • @PathVariable

用于获取请求路径中的参数,通常用于restful风格的api上,示范代码如下:

/**
 * restful风格的参数请求
 * @param id
 */
@RequestMapping(value = "queryProduct/{id}", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity queryProduct(@PathVariable("id") String id){
    //...业务处理
    return new ResponseEntity(HttpStatus.OK);
}
  • @GetMapping

除了@RequestMapping可以指定请求方式之外,还有一些其他的注解,可以用于标注接口路径请求,比如GetMapping用在方法上时,表示只支持get请求方法,等价于@RequestMapping(value="/get",method=RequestMethod.GET)。

@GetMapping("get")
public ResponseEntity get(){
    return new ResponseEntity(HttpStatus.OK);
}
  • @PostMapping

用在方法上,表示只支持post方式的请求。

@PostMapping("post")
public ResponseEntity post(){
    return new ResponseEntity(HttpStatus.OK);
}
  • @PutMapping

用在方法上,表示只支持put方式的请求,通常表示更新某些资源的意思。

@PutMapping("put")
public ResponseEntity put(){
    return new ResponseEntity(HttpStatus.OK);
}
  • @DeleteMapping

用在方法上,表示只支持delete方式的请求,通常表示删除某些资源的意思。

@DeleteMapping("delete")
public ResponseEntity delete(){
    return new ResponseEntity(HttpStatus.OK);
}

2.2. bean 相关注解

  • @Service

通常用于修饰service层的组件,声明一个对象,会将类对象实例化并注入到bean容器里面。

@Service
public class DeptService {
 
 //具体的方法
}
  • @Component

泛指组件,当组件不好归类的时候,可以使用这个注解进行标注,功能类似于于@Service。

@Component
public class DeptService {
 
 //具体的方法
}
  • @Repository

通常用于修饰dao层的组件,@Repository注解属于Spring里面最先引入的一批注解,它用于将数据访问层 (DAO层 ) 的类标识为Spring Bean,具体只需将该注解标注在 DAO类上即可,示例代码如下:

@Repository
public interface RoleRepository extends JpaRepository<Role,Long> {

 //具体的方法
}

为什么现在使用的很少呢?

主要是因为当我们配置服务启动自动扫描dao层包时,Spring会自动帮我们创建一个实现类,然后注入到bean容器里面。当某些类无法被扫描到时,我们可以显式的在数据持久类上标注@Repository注解,Spring会自动帮我们声明对象。

  • @Bean

相当于 xml 中配置 Bean,意思是产生一个 bean 对象,并交给spring管理,示例代码如下:

@Configuration
public class AppConfig {
 
   //相当于 xml 中配置 Bean
    @Bean
    public Uploader initFileUploader() {
        return new FileUploader();
    }

}
  • @Autowired

自动导入依赖的bean对象,默认时按照byType方式导入对象,而且导入的对象必须存在,当需要导入的对象并不存在时,我们可以通过配置required = false来关闭强制验证。

@Autowired
private DeptService deptService;
  • @Resource

也是自动导入依赖的bean对象,由JDK提供,默认是按照byName方式导入依赖的对象;而@Autowired默认时按照byType方式导入对象,当然@Resource还可以配置成通过byType方式导入对象。

/**
 * 通过名称导入(默认通过名称导入依赖对象)
 */
@Resource(name = "deptService")
private DeptService deptService;

/**
 * 通过类型导入
 */
@Resource(type = RoleRepository.class)
private DeptService deptService;
  • @Qualifier

当有多个同一类型的bean时,使用@Autowired导入会报错,提示当前对象并不是唯一,Spring不知道导入哪个依赖,这个时候,我们可以使用@Qualifier进行更细粒度的控制,选择其中一个候选者,一般于@Autowired搭配使用,示例如下:

@Autowired
@Qualifier("deptService")
private DeptService deptService;
  • @Scope

用于生命一个spring bean的作用域,作用的范围一共有以下几种:

  • singleton:唯一 bean 实例,Spring 中的 bean 默认都是单例的。
  • prototype:每次请求都会创建一个新的 bean 实例,对象多例。
  • request:每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。
  • session:每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。
/**
 * 单例对象
 */
@RestController
@Scope("singleton")
public class HelloController {

}

2.3. JPA 相关注解

  • @Entity和@Table

表明这是一个实体类,这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略。

  • @Id

表示该属性字段对应数据库表中的主键字段。

  • @Column

表示该属性字段对应的数据库表中的列名,如果字段名与列名相同,则可以省略。

  • @GeneratedValue

表示主键的生成策略,有四个选项,分别如下:

  • AUTO:表示由程序控制,是默认选项 ,不设置就是这个
  • IDENTITY:表示由数据库生成,采用数据库自增长,Oracle 不支持这种方式
  • SEQUENCE:表示通过数据库的序列生成主键ID,MYSQL 不支持
  • Table:表示由特定的数据库产生主键,该方式有利于数据库的移植
  • @SequenceGeneretor

用来定义一个生成主键的序列,它需要与@GeneratedValue联合使用才有效,以TB_ROLE表为例,对应的注解配置如下:

@Entity
@Table(name = "TB_ROLE")
@SequenceGenerator(name = "id_seq", sequenceName = "seq_repair",allocationSize = 1)
public class Role implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID,采用【id_seq】序列函数自增长
     */
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "id_seq")
    private Long id;


    /* 角色名称
     */
    @Column(nullable = false)
    private String roleName;

    /**
     * 角色类型
     */
    @Column(nullable = false)
    private String roleType;
}
  • @Transient

表示该属性并非与数据库表的字段进行映射,ORM 框架会将忽略该属性。

/**
 * 忽略该属性
 */
@Column(nullable = false)
@Transient
private String lastTime;
  • @Basic(fetch=FetchType.LAZY)

用在某些属性上,可以实现懒加载的效果,也就是当用到这个字段的时候,才会装载这个属性,如果配置成fetch=FetchType.EAGER,表示即时加载,也是默认的加载方式!

/**
 * 延迟加载该属性
 */
@Column(nullable = false)
@Basic(fetch = FetchType.LAZY)
private String roleType;
  • @JoinColumn

用于标注表与表之间关系的字段,通常与@OneToOne、@OneToMany搭配使用,例如如下:

@Entity
@Table(name = "tb_login_log")
public class LoginLog implements Serializable {
 
 /**
  * 查询登录的用户信息
  */
 @OneToOne
    @JoinColumn(name = "user_id")
    private User user;
 
 //...get、set
}
  • @OneToOne、@OneToMany和@ManyToOne

这三个注解,相当于hibernate配置文件中的一对一,一对多,多对一配置,比如下面的客户地址表,通过客户 ID,实现客户信息的查询。

@Entity
@Table(name="address")
public class AddressEO implements java.io.Serializable {
 
  @ManyToOne(cascade = { CascadeType.ALL })
  @JoinColumn(name="customer_id")
  private CustomerEO customer;
 
  //...get、set
}

2.4. 配置相关注解

  • @Configuration

表示声明一个 Java 形式的配置类,Spring Boot 提倡基于 Java 的配置,相当于你之前在 xml 中配置 bean,比如声明一个配置类AppConfig,然后初始化一个Uploader对象。

@Configuration
public class AppConfig {

    @Bean
    public Uploader initOSSUploader() {
        return new OSSUploader();
    }

}
  • @EnableAutoConfiguration

@EnableAutoConfiguration可以帮助SpringBoot应用将所有符合条件的@Configuration配置类,全部都加载到当前SpringBoot里,并创建对应配置类的Bean,并把该Bean实体交给IoC容器进行管理。

某些场景下,如果我们想要避开某些配置类的扫描(包括避开一些第三方jar包下面的配置,可以这样处理。

@Configuration
@EnableAutoConfiguration(exclude = { org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})
public class AppConfig {

 //具有业务方法
}
  • @ComponentScan

标注哪些路径下的类需要被Spring扫描,用于自动发现和装配一些Bean对象,默认配置是扫描当前文件夹下和子目录下的所有类,如果我们想指定扫描某些包路径,可以这样处理。

@ComponentScan(basePackages = {"com.xxx.a", "com.xxx.b", "com.xxx.c"})
  • @SpringBootApplication

等价于使用@Configuration、@EnableAutoConfiguration、@ComponentScan这三个注解,通常用于全局启动类上,示例如下:

@SpringBootApplication
public class PropertyApplication {

    public static void main(String[] args) {
        SpringApplication.run(PropertyApplication.class, args);
    }
}

把@SpringBootApplication换成@Configuration、@EnableAutoConfiguration、@ComponentScan这三个注解,一样可以启动成功,@SpringBootApplication只是将这三个注解进行了简化!

  • @EnableTransactionManagement

表示开启事务支持,等同于 xml 配置方式的:

@SpringBootApplication
@EnableTransactionManagement`
public class PropertyApplication {

    public static void main(String[] args) {
        SpringApplication.run(PropertyApplication.class, args);
    }
}
  • @Conditional

从 Spring4 开始,可以通过@Conditional注解实现按条件装载bean对象,目前 Spring Boot 源码中大量扩展了@Condition注解,用于实现智能的自动化配置,满足各种使用场景。下面我给大家列举几个常用的注解:

  • @ConditionalOnBean:当某个特定的Bean存在时,配置生效
  • @ConditionalOnMissingBean:当某个特定的Bean不存在时,配置生效
  • @ConditionalOnClass:当Classpath里存在指定的类,配置生效
  • @ConditionalOnMissingClass:当Classpath里不存在指定的类,配置生效
  • @ConditionalOnExpression:当给定的SpEL表达式计算结果为true,配置生效
  • @ConditionalOnProperty:当指定的配置属性有一个明确的值并匹配,配置生效

具体的应用案例如下:

@Configuration
public class ConditionalConfig {


    /**
     * 当AppConfig对象存在时,创建一个A对象
     * @return
     */
    @ConditionalOnBean(AppConfig.class)
    @Bean
    public A createA(){
        return new A();
    }

    /**
     * 当AppConfig对象不存在时,创建一个B对象
     * @return
     */
    @ConditionalOnMissingBean(AppConfig.class)
    @Bean
    public B createB(){
        return new B();
    }


    /**
     * 当KafkaTemplate类存在时,创建一个C对象
     * @return
     */
    @ConditionalOnClass(KafkaTemplate.class)
    @Bean
    public C createC(){
        return new C();
    }

    /**
     * 当KafkaTemplate类不存在时,创建一个D对象
     * @return
     */
    @ConditionalOnMissingClass(KafkaTemplate.class)
    @Bean
    public D createD(){
        return new D();
    }


    /**
     * 当enableConfig的配置为true,创建一个E对象
     * @return
     */
    @ConditionalOnExpression("${enableConfig:false}")
    @Bean
    public E createE(){
        return new E();
    }


    /**
     * 当filter.loginFilter的配置为true,创建一个F对象
     * @return
     */
    @ConditionalOnProperty(prefix = "filter",name = "loginFilter",havingValue = "true")
    @Bean
    public F createF(){
        return new F();
    }
}
  • @value

可以在任意 Spring 管理的 Bean 中通过这个注解获取任何来源配置的属性值,比如你在application.properties文件里,定义了一个参数变量!

config.name=zhangsan

在任意的bean容器里面,可以通过@Value注解注入参数,获取参数变量值。

@RestController
public class HelloController {

    @Value("${config.name}")
    private String config;

    @GetMapping("config")
    public String config(){
        return JSON.toJSONString(config);
    }
}
  • @ConfigurationProperties

上面@Value在每个类中获取属性配置值的做法,其实是不推荐的。

一般在企业项目开发中,不会使用那么杂乱无章的写法而且维护也麻烦,通常会一次性读取一个 Java 配置类,然后在需要使用的地方直接引用这个类就可以多次访问了,方便维护,示例如下:

首先,在application.properties文件里定义好参数变量。

config.name=demo_1
config.value=demo_value_1

然后,创建一个 Java 配置类,将参数变量注入即可!

@Component
@ConfigurationProperties(prefix = "config")
public class Config {

    public String name;

    public String value;

    //...get、set
}

最后,在需要使用的地方,通过ioc注入Config对象即可!

  • @PropertySource

这个注解是用来读取我们自定义的配置文件的,比如导入test.properties和bussiness.properties两个配置文件,用法如下:

@SpringBootApplication
@PropertySource(value = {"test.properties","bussiness.properties"})
public class PropertyApplication {

    public static void main(String[] args) {
        SpringApplication.run(PropertyApplication.class, args);
    }
}
  • @ImportResource

用来加载 xml 配置文件,比如导入自定义的aaa.xml文件,用法如下:

@ImportResource(locations = "classpath:aaa.xml")
@SpringBootApplication
public class PropertyApplication {

    public static void main(String[] args) {
        SpringApplication.run(PropertyApplication.class, args);
    }
}

2.5. 异常处理相关注解

  • @ControllerAdvice和@ExceptionHandler

通常组合使用,用于处理全局异常,示例代码如下:

@ControllerAdvice
@Configuration
@Slf4j
public class GlobalExceptionConfig {
 
 private static final Integer GLOBAL_ERROR_CODE = 500;
 
 @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public void exceptionHandler(HttpServletRequest request, HttpServletResponse response, Exception e) throws Exception {
        log.error("【统一异常处理器】", e);
        ResultMsg<Object> resultMsg = new ResultMsg<>();
        resultMsg.setCode(GLOBAL_ERROR_CODE);
        if (e instanceof CommonException) {
           CommonException ex = (CommonException) e;
           if(ex.getErrCode() != 0) {
                resultMsg.setCode(ex.getErrCode());
            }
            resultMsg.setMsg(ex.getErrMsg());
        }else {
            resultMsg.setMsg(CommonErrorMsg.SYSTEM_ERROR.getMessage());
        }
        WebUtil.buildPrintWriter(response, resultMsg);
    }
 
 
}

2.6. 测试相关注解

  • @ActiveProfiles

一般作用于测试类上, 用于声明生效的 Spring 配置文件,比如指定application-dev.properties配置文件。

  • @RunWith和@SpringBootTest

一般作用于测试类上, 用于单元测试用,示例如下:

@ActiveProfiles("dev")
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestJunit {

    @Test
    public void executeTask() {
        //测试...
    }
}

三、小结

整个篇幅内容比较多,比较干,大家在看的过程中,也没有必要去记住,可以先收藏起来,等到需要用到的时候,再把它拿出来看看!

 

Spring Boot 注解大全(详细版) **包含**:组合了@Configuration、@EnableAutoConfiguration和@ComponentScan。- **作用**:组合@ControllerAdvice和@ResponseBody,用于全局异常处理。- **作用**:组合注解,相当于@Controller + @ResponseBody。- **作用**:Spring Boot核心注解,用于启动类。- **作用**:启用Spring Boot的自动配置机制。- **与@Autowired区别**:默认按名称而非类型。 阅读详情

相关推荐

尝试使用CubeMX做stm32开发之九:SYS配置

参考《STM32中文参考手册_V10》,研究CubeMX中有关SYS的配置

Forster-C的博客 9420

SpringBoot最常用的50个注解(全是干货,干的要死!)

SpringBoot最常用的50个注解(全是干货,干的要死!)

qq_46138492的博客 5万+

WSL2+Ubuntu20.04纯root环境搭建指南:告别权限烦恼的终极方案

本文提供了一份详细的WSL2+Ubuntu20.04纯root环境搭建指南,旨在为本地开发与学习打造一个免去权限干扰、极致流畅的Linux子系统环境。通过启用WSL2、安装Ubuntu 20.04,并执行核心的root用户设置,开发者可以彻底告别频繁的sudo操作,提升在文件操作、容器调试和系统配置等方面的效率。

time3的博客 474

SpringBoot注解大全(超详细)

是一个注解,它是 Spring Boot 应用的入口注解,用于表示一个应用程序的主类。这个组合注解简化了 Spring Boot 应用的配置,可以减少开发者的工作量。:通过启用 Spring Boot 的自动配置机制,根据项目的依赖和配置信息来自动配置应用程序。@SpringBootApplication详细可参考------>等注解标记的类),将它们注册为 Spring 的组件。注解标记的方法,用于定义 Bean 对象。:标记该类是一个配置类,其中可能包含用。注解放置在项目的主类上。

· 1万+

时序基础模型Timer-S1:十亿参数如何革新时间序列预测

时间序列预测是数据分析与机器学习中的核心任务,旨在基于历史数据预测未来趋势。其原理在于捕捉数据中的趋势、周期性和季节性等时序依赖关系。这项技术的价值在于赋能业务决策,广泛应用于金融风控、能源管理、物联网监控和供应链优化等关键场景。传统方法依赖针对特定任务的专用模型,面临泛化能力弱和开发成本高的挑战。本文聚焦的时序基础模型,通过在海量跨领域数据上进行预训练,学习时序通用模式,并结合十亿级参数带来的强大容量,实现了性能的显著突破。这种范式转变,使得模型能够像“全科医生”一样,通过少量数据微调即可快速适应新任务,

weixin_29164843的博客 269

单波束与多波束声呐:从原理到应用场景的全面解析

本文全面解析了单波束与多波束声呐的工作原理、核心特点及应用场景。单波束声呐如精准的狙击手,适合高精度需求;多波束声呐则像高效的散弹枪,适用于快速测绘和大面积覆盖。文章还提供了选型指南和前沿发展趋势,帮助用户根据预算和需求选择最适合的声呐技术。

weixin_30872157的博客 220

springboot注解(全)

Spring Boot是一个快速开发框架,快速的将一些常用的第三方依赖整合(通过Maven子父亲工程的方式),简化xml配置,全部采用注解形式,内置Http服务器(Jetty和Tomcat),最终以Java应用程序进行执行。

zhaoshuangjian 7283

从理论到实践:AI设备维护系统的架构实现

第一部分:理论基石——从设备维护的演进讲起,理解AI如何重塑维护模式;第二部分:架构设计——详解六层高可用系统架构,明确各层职责与技术选型;第三部分:核心技术——拆解数据处理、特征工程、模型训练、部署等关键环节的实现细节;第四部分:实践落地——8步流程带你从需求到上线,附代码示例与工具链;第五部分:案例研究——风电齿轮箱预测性维护系统的真实案例,从问题到方案再到效果;第六部分:挑战与展望——探讨当前技术瓶颈与未来趋势(数字孪生、联邦学习等)。准备好了吗?

大数据洞察的博客 1251

springboot注解详解(三)容器配置注解与Spring Boot注解

目录 一、容器配置注解 1、@Autowired 2、@Primary 3、@PostConstruct与@PreDestroy 4、@Qualifier 二、Spring Boot注解 1、@SpringBootApplication 2、@EnableAutoConfiguration 3、@ConditionalOnClass与@ConditionalOnMissingClass 4、@ConditionalOnBean与@ConditionalOnMissingBean 5、@

zhulin1028的博客 854

人工智能训练师(三级)操作技能考核·自测卷

为您定制了一份。这份试卷严格拆分了“业务分析”、“智能训练”、“智能系统设计”、“培训与指导”四大模块,所有填空题均来源于上一轮整理的。您可以先用它进行“第二步(抛开答案自己填)”,填完后对照末尾的答案速查进行“第一步(补全并运行)”的校验,最后标记错题进行“第三步(针对性重复练习)”。

suny8088的博客 104

Arduino读取串口接收到的数据并发送数据

Arduino读取串口接收到的数据并发送数据 源程序: void setup() { Serial.begin(115200); } void loop() { String comdata ; while (Serial.available() > 0) { comdata += char(Serial.read()); delay(2); } if (comdata.length() > 0) { Serial.print("串口接收到的数据:"); Serial.println(comd

perseverance51博客 1万+

【SpringBoot】| Spring Boot 常见的底层注解剖析

【SpringBoot】| Spring Boot 常见的底层注解剖析

m0_61933976的博客 5788

RISC-V CPU设计(三)---多周期CPU的设计与实现

基本情况 本多周期CPU支持RV32I指令集(fence,ecall,ebreak除外),已通过部分指令的测试,如代码有bug,欢迎指出。 模块划分 代码将CPU划分为以下几个模块: 1.控制单元:ControlUnit 用于产生控制信号,是CPU的大脑,指挥中枢。 2.分支决策单元:BranchUnit 用于决定B型指令是否发生跳转 3.立即数单元:ImmUnit 用于从指令中解析出立即数. 4.寄存器堆:RegisterFile RISC-V的32个寄存器,其中x0寄存器恒为0,不可更改。 5.指令存储

qq_40268672的博客 5542

史上最全 SpringBoot 注解详解

一、注解(annotations)列表 1、@SpringBootApplication 包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。 其中@ComponentScan让Spring Boot扫描到Configuration类并把它加入到程序上下文。 2、@ComponentScan 组件扫描,可自动发现和装配一些Bean...

riemann_的博客 8714

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

springboot注解详解

一、注解列表 @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。 @ComponentScan组件扫描,可自动发现和装配一些Bean,让spring Boot扫描到Configuration类并把它加入到程序上下文。 @Configuration 等同于spring的XML配置...

二十同学 6万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

springboot 注解详解_Spring Boot 最核心的 3 个注解详解

最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过。然而,当我问他们 Spring Boot 最核心的 3 个注解是什么,令我失望的是鲜有人能答上来,这样你能说你对 Spring Boot 很了解吗?这可能还会给你减分!你所需具备的基础什么是 Spring Boot?Spring Boot 核心配置文件详解Spring Boot...

weixin_39781143的博客 206

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

详解SpringBoot的常用注解

是SpringBoot应用程序的核心注解,通常用于主类上。:表示该类是一个配置类,用于定义Spring的配置信息。:表示启用自动配置,SpringBoot会根据项目中的依赖自动配置相应的组件。:表示启用组件扫描,SpringBoot会自动扫描当前包及其子包下的所有组件。是一个组合注解,用于定义RESTful风格的Web服务。:表示该类是一个控制器类,用于处理HTTP请求。:表示将方法返回值作为HTTP响应体,而不是视图名称。@Autowired是Spring的核心注解之一,用于实现依赖注入。

万猫学社 5398

SpringBoot常用注解详解

Spring Boot是基于Spring框架的快速开发套件,大量使用注解来简化配置和开发。本文档详细介绍SpringBoot中常用的注解,对每个注解的功能、使用场景和示例代码进行全面解析,帮助新手开发者快速掌握SpringBoot开发。注解是Java代码的元数据,不会直接影响程序执行,但会被框架读取并用于控制应用行为。SpringBoot注解极大地减少了XML配置的繁琐,使代码更加简洁优雅。SpringBoot注解大大简化了Java企业级应用的开发,通过这些注解可以专注于业务逻辑而不是繁琐的配置。

yk_dflkg的博客 1674

springboot常用注解详解

本文讲了springboot中常用的注解。

努力是为了让自己不平庸。。。 3542

【springboot】一文总结超全的spring boot注解

“约定大于配置”,这是springboot显著特点,它提供了各式各样的注解极大简化代码,建议收藏,当作字典查看。

wphero的博客 264

全网最全 SpringBoot 常用的注解

全网最全的 springboot 注解

草原孤狼的专栏 1053

SpringBoot 常用注解 -- Spring Boot 注解

SpringBoot 常用注解 Spring Boot 注解

MtiredM的博客 227

SpringBoot注解大全

转载自:http://www.cnblogs.com/ldy-blogs/p/8550406.html SpringBoot注解大全 一、注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spr...

smilejiasmile的博客 1万+
上一篇: 京东二面:MySQL 主从延迟,读写分离 7 种解决方案
下一篇: JAVA三年经验面试题
Java面试那些事儿
博客等级 码龄6年 622粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值