简历技能之SpringBoot常用注解

YangeIT大约 20 分钟前端LayUI若依

简历技能之SpringBoot常用注解

今日目标

  1. SpringBoot框架开发项目过程中,常用的注解 🍐
  2. 剖析Springboot的底层原理 🍐 🚀

知识储备

  1. 已经完成springBoot框架创建项目或者使用若以框架开发一个表的增删改查业务

今日初始代码下载42kb

1. SpringBoot开发常用注解 ❤️

SpringBoot开发常用注解

实例化相关:

➡️ 1. @Configuration: 用于标记一个类,指示它包含一个或多个bean的定义。通常用于配置类,其中定义了应用程序的Bean配置。

@Configuration
public class SwaggerConfig
{
    /** 系统基础配置 */
    @Autowired
    private RuoYiConfig ruoyiConfig;
    /** 是否开启swagger */
    @Value("${swagger.enabled}")
    private boolean enabled;
}
 









Configuration注解源码 👇

@Component
public @interface Configuration {
    @AliasFor(
        annotation = Component.class
    )
    String value() default "";

    boolean proxyBeanMethods() default true;
}
 
 







➡️ 2. @RestController: 用于标记一个类,指示它是一个控制器类,用于处理HTTP请求并返回RESTful响应。

@RestController
@RequestMapping("/bkuser/info")
public class BkUserController extends BaseController
{
    @Autowired
    private IBkUserService bkUserService;
}
 






@RestController注解源码 👇

@Controller
@ResponseBody
public @interface RestController {
    @AliasFor(
        annotation = Controller.class
    )
    String value() default "";
}
 
 
 





➡️ 3. @Bean: 用于标记一个方法,告诉Spring容器,该方法返回一个bean对象,可以被Spring管理和注入到其他组件中。

@Configuration
public class DruidConfig{
    @Bean
    @ConfigurationProperties("spring.datasource.druid.master")
    public DataSource masterDataSource(DruidProperties druidProperties)
    {
        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
        return druidProperties.dataSource(dataSource);
    }
}


 
 
 
 
 
 
 

@Bean注解源码

public @interface Bean {
    @AliasFor("name") //bean的名字
    String[] value() default {};

    @AliasFor("value") //bean的名字
    String[] name() default {};
}

➡️ 4. @SpringBootApplication: 用于启动一个Spring Boot应用程序,并包含了多个注解的组合,包括@Configuration@ComponentScan@EnableAutoConfiguration,它们一起配置和启动Spring Boot应用程序。

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







@SpringBootApplication注解源码

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
    @AliasFor(
        annotation = EnableAutoConfiguration.class
    )
    Class<?>[] exclude() default {};
}
 
 
 














➡️ 5. @Service: 用于标记一个类,指示它是一个服务层组件,通常用于业务逻辑的实现。Spring会自动将这些类作为bean进行管理。

@Service
public class SysConfigServiceImpl implements ISysConfigService
{
    @Autowired
    private SysConfigMapper configMapper;
}
 





@Service源码

@Component
public @interface Service {
    @AliasFor(
        annotation = Component.class
    )
    String value() default "";
}
 






业务场景示例:

假设您正在开发一个电子商务网站的后端,可以应用上述注解如下:

  • @RestController@RequestMapping用于创建产品控制器,处理产品相关的HTTP请求,如获取产品信息、添加产品、更新产品等。

  • @Service用于创建商品服务,其中包含业务逻辑,如价格计算、库存管理等。

  • @PreAuthorize用于限制对某些敏感操作(如删除商品)的访问,只有具备管理员角色的用户才能执行。

  • @Api@ApiOperation用于文档化API,以便Swagger生成API文档,帮助前端和其他开发人员理解如何使用您的API。

  • @Log可能用于记录关键操作的日志,以便监控和审计。

这些注解的使用可以帮助您构建健壮、文档化和安全的后端应用程序。

作业

🚩 1. 如果面试官问你SpringBoot开发过程中,有哪些注解,你可以结合上面的,以及业务说明一下

2. 集成jsencrypt实现密码加密传输方式

前端密码或者铭感信息加密传输

目前登录接口密码是明文传输,如果安全性有要求,可以调整成加密方式传输

登录接口图
登录接口图

代码操作

前端代码操作

  1. 修改前端login.js对密码进行rsa加密。点击查看代码图解open in new window
import { encrypt } from '@/utils/jsencrypt' 

export function login(username, password, code, uuid) {
  password = encrypt(password); //引入工具类,将密码进行加密
  .........
}

作业

🚩 1. 如果面试官问你,请问你怎么保障前后端数据的安全性的?你尝试的回答一下。

  1. 思考下,如果后端传输数据给前端,怎么保障数据传输过程在安全性尼?

3. 完成PostgreSQL数据库的增删改查

前言

PostgreSQL 是一款成熟且备受推崇的开源关系型数据库管理系统(DBMS)。它以其卓越的功能性、可扩展性和稳定性而闻名于业界。

PostgreSQL 具有以下几个显著特点:

  • 开源自由:作为开源软件,PostgreSQL 提供了自由的使用权,并且可以轻松地根据需要进行修改和定制。

  • 强大而灵活的数据模型:PostgreSQL 支持多种数据类型,包括数值、字符串、日期/时间、布尔型、数组、JSON、XML 等,可以方便地满足各种数据存储需求。

  • 高度可扩展和定制化:PostgreSQL 提供了丰富的扩展机制,允许用户自定义数据类型、索引类型、函数、触发器等,以满足特定应用程序的需求。

  • 事务支持和并发控制:PostgreSQL 提供了 ACID(原子性、一致性、隔离性和持久性)事务支持,并采用多版本并发控制(MVCC)技术,实现高并发读写操作。

  • 安全性和数据完整性:PostgreSQL 提供了灵活的认证和授权机制,支持 SSL 加密传输。同时,它还提供了完整性约束、触发器和外键等功能,确保数据的完整性和一致性。

代码操作

CREATE TABLE users (
    id serial PRIMARY KEY,
    name VARCHAR(255),
    description TEXT
);

INSERT INTO users (name, description)
VALUES
    ('张无忌', '九阳真经传人,与小龙女共闯江湖'),
    ('令狐冲', '独孤九剑宗师,情系岳灵珊'),
    ('杨过', '神雕侠侣,与小龙女相依为命'),
    ('郭靖', '神雕大侠,义薄云天'),
    ('黄蓉', '郭靖的妻子,智勇双全');

image
image

4. docker安装neo4j中文版数据库

前言

Neo4j 是一款强大的图形数据库,Docker 版本为开发者提供了便捷的安装方式,同时可以使用浏览器客户端访问数据库,进行图形数据管理和查询。

使用中文版的好处
使用中文版的好处

代码操作

使用以下命令从 Docker Hub 下载 Neo4j 镜像:

# 下载 Neo4j Docker 镜像
docker pull neo4jchina/neo4j-chs:latest

总结

本指南介绍了如何使用 Docker 安装 Neo4j中文版,并使用浏览器客户端访问数据库。Neo4j 是一个功能强大的图形数据库,适用于多种业务场景,具有直观的可视化工具,方便数据管理和查询。

请注意,这只是一个入门指南。Neo4j 具有丰富的功能和强大的查询语言(Cypher),您可以深入学习以充分利用其潜力。祝您愉快地使用 Neo4j 构建和查询图形数据!

5. docker安装mysql数据库

前言

MySQL 是一个开源的关系型数据库管理系统,Docker 提供了一种便捷的方式来安装和运行 MySQL 数据库。本指南将介绍如何使用 Docker 安装 MySQL 并进行基本配置。

代码操作

使用以下命令从 Docker Hub 下载 MySQL 镜像:


# 下载 MySQL Docker 镜像(请替换 <version> 为所需版本 如latest)
docker pull mysql:<version>

总结

本指南介绍了如何使用 Docker 安装 MySQL 数据库,并进行基本的配置和访问。MySQL 是一个强大的关系型数据库管理系统,适用于各种业务场景。

请注意,这只是一个入门指南。MySQL 具有丰富的功能和强大的查询语言(SQL),您可以深入学习以充分利用其潜力。在生产环境中,还需要考虑数据库的备份和性能优化等问题。祝您愉快地使用 MySQL!

5. Docker搭建Redis集群

前言

Redis 集群是 Redis 数据库的分布式版本,通过多个节点协同工作,提供高可用性和扩展性。

代码操作

步骤

  • 第一步 - 下载 Redis Docker 镜像
  • 第二步 - 创建 Redis 集群容器
  • 第三步 - 构建 Redis 集群
  • 第四步 - 检查 Redis 集群状态
  • 第五步 - 使用 Redis 集群

首先,确保你已安装 Docker。然后,使用以下命令从 Docker Hub 下载 Redis 镜像:


docker pull redis

总结

通过 Docker 创建 Redis 集群,你可以轻松实现高可用性和扩展性,适用于大规模的数据缓存需求。请注意,配置和管理 Redis 集群需要谨慎,特别是在生产环境中。