SpringBootWebProject学习5、常用注解说明

简介: SpringBootWebProject学习5、常用注解说明

前言

距离本学期结束就要去实习的时间已经很短了,那么在这里我帮助大家完整的回忆一下SpringBoot的完整操作,为了更加直接体现完整的过程我会使用层叠法来完成这个系列文章,会从最新版本idea社区版本的下载开始,直至我们代码开发的整个阶段,可以将接口完全搞出来,跨域后让前端的项目可以解析,完成整个开发的闭环操作,准备工作的孩子们可以持续的跟着看看,应该会给你提供比较大的帮助。

声明:由于刚毕业的还比不可能上来就上大的微服务架构,所以这里不提供springcloud内容,当然我会在下一个系列中将本次学到的整个springboot融入到springcloud中。

系统与开发环境

系统:Windows 11 家庭中文版

idea:官网2024年1月最新社区版本:ideaIC-2024.1

数据库:阿里云RDS for MySQL 5.7

基础idea环境搭建


基础maven配置(外部独立maven)


基础maven默认配置(默认maven)



SpringBootWebProject学习——正文——常用注解说明

常用的注解也就十来个,这里会多展示一些。

@SpringBootApplication

这是一个组合注解,包括了@Configuration、@EnableAutoConfiguration和@ComponentScan三个注解。用于标识SpringBoot应用程序的入口类。

@SpringBootApplication注解通常被用于Spring Boot应用程序的入口类上,用于启动Spring Boot应用程序。它可以简化spring应用程序的配置和启动过程。

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

@RestController

@RestController会自动将返回值转换为JSON格式。

@Autowired

用于自动装配Spring容器中的Bean,经常会使用引入dao层接口。

@RequestMapping

用于映射请求URL和处理方法。@RequestMapping是Spring MVC框架中的一个核心注解,它用于映射HTTP请求和控制器方法之间的关系。它可以用于类级别和方法级别,用于指定请求URL和HTTP方法(GET、POST、PUT、DELETE等)。

@GetMapping

用于映射HTTP GET请求。

@PostMapping

用于映射HTTP POST请求。

@RequestParam

用于获取请求参数的值。

@RestController
@RequestMapping("/api")
public class UsersController {
 
    @GetMapping("/users")
    public List<User> getUsers(@RequestParam("page") int page, @RequestParam("size") int size) {
       /*获取page与size参数*/
    }
}

@PathVariable

用于获取URL中的参数值。

@GetMapping("/users/{id}")
    public User getUser(@PathVariable Long id) {
        // 可以看到路径上的{id}
    }

@RequestBody

用于将HTTP请求体中的数据绑定到控制器方法的参数上。

public User createUser(@RequestBody User user) {}

@ResponseBody

用于将控制器方法的返回值转换为HTTP响应体中的数据。

    @GetMapping("/users/{id}")
    @ResponseBody
    public User getUser(@RequestBody int id) {
        // 从数据库或其他地方获取用户数据
        User user = userService.getUserById(id);
        return user;
    }

@Component

用于标注一个类作为Spring Bean。

@Component
public class OrderServiceImpl implements OrderService {
 
    // 实现OrderService接口中的方法
}

@Service

用于标注一个类作为服务类(Service)。

@Service
public class OrderServiceImpl implements OrderService {
 
    // 实现OrderService接口中的方法
}

@Repository

用于标注一个类作为数据访问对象(DAO)。

@Repository
public class OrderRepositoryImpl implements OrderRepository {
 
    // 实现OrderRepository接口中的方法
}

@Configuration

用于标注一个类作为配置类。

@Configuration
public class AppConfig {
 
    @Bean
    public OrderService orderService() {
        return new OrderServiceImpl();
    }
 
    @Bean
    public OrderRepository orderRepository() {
        return new OrderRepositoryImpl();
    }
}

@Value

用于将配置文件中的属性值注入到Bean对象中。

 @Value("${my.property}")
    private String myProperty;

@Bean

用于将一个方法返回的对象注册为一个Spring Bean。

@PropertySource

用于指定一组属性文件的位置,从而可以在Spring应用程序中使用这些属性。

@EnableTransactionManagement

用于标识一个方法或类需要使用事务进行操作。使用@Transactional注解来确保这个操作在一个事务中进行,从而保证操作的原子性、一致性、隔离性和持久性。

@Service
@Transactional
public class OrderService {}

@Getter

@Getter是Lombok框架中的一个注解,用于自动生成getter方法。

@ToString

@ToString是Lombok框架中的一个注解,用于自动生成toString()方法。

使用前要注意是否有Lombok。

以上20个注释是我这里经常用到的,希望能给大家带来一定的帮助,后面再使用在过程中我也会详细的讲述。

相关文章
|
监控 安全 Shell
防止员工泄密的措施:在Linux环境下使用Bash脚本实现日志监控
在Linux环境下,为防止员工泄密,本文提出使用Bash脚本进行日志监控。脚本会定期检查系统日志文件,搜索敏感关键词(如&quot;password&quot;、&quot;confidential&quot;、&quot;secret&quot;),并将匹配项记录到临时日志文件。当检测到可疑活动时,脚本通过curl自动将数据POST到公司内部网站进行分析处理,增强信息安全防护。
406 0
|
算法 调度 UED
深入浅出操作系统:从理论到实践
【9月更文挑战第33天】在数字世界的基石中,操作系统是不可或缺的一环。本文将带领读者从操作系统的基本原理出发,探索其设计哲学,并通过实际代码示例,深入理解操作系统如何管理资源、处理中断和异常、以及提供用户界面等关键功能。无论你是计算机科学的初学者,还是希望深化对操作系统认识的研发人员,这篇文章都将为你打开一扇通往操作系统深层世界的大门。
|
边缘计算 JSON JavaScript
一起来学 next.js - API 路由篇(轻松做全栈?)
next.js 作为最热门的 react 框架,不过这么久了好像国内使用率一直不太高。最近在研究做个小项目正好做下笔记,有兴趣的可以一起来学习。
|
NoSQL Linux MongoDB
centos7搭建MongoDB以及MongoDB复制集
centos7搭建MongoDB以及MongoDB复制集
281 0
|
消息中间件 Shell Linux
RabbitMQ部署指南
主要是如何部署RabbitMQ的具体步骤
|
存储
计算机基础知识----计算机中的基本单位
计算机基础知识----计算机中的基本单位
570 0
|
存储 C++ 容器
[C++] 点到直线的最大、最小距离
[C++] 点到直线的最大、最小距离
252 0
|
云安全 存储 运维
首次曝光!唯一全域最高等级背后的阿里云云原生安全全景图
6 月 15 日,2022 云原生产业大会宣布,阿里云在信通院“云原生安全成熟度”评估中,取得国内唯一全域最高等级认证。信通院“云原生安全成熟度”从基础设施安全、云原生基础架构安全、云原生应用安全、云原生研发运营安全和云原生安全 5 个维度,共计 315 个细分项考察企业云原生架构安全水平。阿里云云原生应用平台通过大规模企业客户服务积累和创新性技术打磨,沉淀了全链路的云原生安全解决方案,全方位展现了阿里云云原生产品安全能力的丰富度和领先性。
|
JSON 数据格式
六种方式实现数组扁平化,总有一个适合你
扁平化在日常的工作中我们也会经常用到,也是面试时经常考的一道题,今天总结一下常见和不常见的数组扁平化的几种方式 数组的扁平化其实就是将一个嵌套多层的数组 array(嵌套可以是任何层数)转换为只有一层的数组。其实就是把多维的数组“拍平”,输出最后的一维数组。
356 0
|
机器学习/深度学习 弹性计算 运维
WSDM 2021 | 构建动态图分析时间序列状态的演化
本文简要介绍我们刚刚被WSDM2021会议录用并即将发表的论文&quot;Time-Series Event Prediction with Evolutionary State Graph&quot;,在文中我们提出了一种将时序转化为图进行表示建模的方法。同时我们把所实现的方法落地为阿里云·SLS的智能巡检服务,可以应用于大规模的时间序列异常检测与分析,辅助运维、运营、研发等诸多场景。
6432 0
WSDM 2021 | 构建动态图分析时间序列状态的演化