【后端开发】Spring MVC阶段总结

文章目录

快捷引入依赖

这个方法可以快捷引入依赖,但是引入依赖并不一定没有问题,可能需要修改一些。

安装插件EditStarter , 在pom.xml文件中,单击右键,选择Generate(或者快捷键Alt+Insert),点击ok,进入EditStarters的编辑界面,添加对应依赖即可。

lombok的使用

Lombok依赖

Lombok是⼀个Java⼯具库,通过添加注解的⽅式,简化Java的开发。

使用IDEA创建项目或者通过可视化的方法引入lombok后,我的项目中出现了,编译过程中无法找到对应创建的方法,将下面的配置代码替换为自动添加的代码,实现了lombok的效果。

xml 复制代码
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
            <scope>provided</scope>
        </dependency>
xml 复制代码
			<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>17</source>
                    <target>17</target>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>1.18.30</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>

Lombok使用

lombok通过⼀些注解的方式,可以帮助我们消除⼀些冗长代码,使代码看起来简洁⼀些。

@Data 注解会帮助自动实现⼀些方法,包含getter/setter,equals,toString等

java 复制代码
@Data
public class MessageInfo {
    private String from;
    private String to;
    private String say;
    //通过一个工具jar包,通过一个注解@Data来实现对get、set方法的撰写
}

具体查看加了@Data注解后手机闲了哪些方法,可以通过大家编译后反编译的文件进行查看,也就是target文件。

Lombok注解

注解 作用
@Getter ⾃动添加getter方法
@Setter ⾃动添加setter方法
@ToString ⾃动添加toString方法
@EqualsAndHashCode ⾃动添加equals和hashCode方法
@NoArgsConstructor ⾃动添加⽆参构造方法
@AllArgsConstructor ⾃动添加全属性构造方法,顺序按照属性的定义顺序
@NonNull 属性不能为null
@RequiredArgsConstructor ⾃动添加必需属性的构造方法,final+@NonNull 的属性为必需

@Data=@Getter+@Setter+@ToString+@EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor

三层架构

分层的目的

MVC模式强调数据和视图分离,将数据展示和数据处理分开,通过控制器对两者进⾏组合。

三层架构强调不同维度数据处理的高内聚和低耦合,将交互界面,业务处理和数据库操作的逻辑分开。

但是⼆者的目的是相同的,都是"解耦,分层,代码复用"。

MVC与分层的区别

MVC架构模式由三部分组成,分别是:模型(Model),视图(View)和控制器(Controller)。

三层架构将业务应用划分为:表现层,业务逻辑层,数据访问层。

视图和控制器合起来对应三层架构中的表现层,模型对应三层架构中的业务逻辑层,数据层,以及实体类。

三层架构

  1. 表现层(Controller):接收前端发送来的请求,对请求进行处理,并结果响应。
  2. 业务逻辑层(service):根据请求,对数据进行加工处理,处理具体的业务逻辑。
  3. 数据层(Dao):数据相关的处理,比如从mysql, hbase等获取数据等。

在此基础上,还有会个保存实体类的层(model),但是不同的项目有不同表现。

分层的好处

  • 降低层与层之间的依赖,结构更加的明确,利于各层逻辑的复用。
  • 开发人员可以只关注整个结构中的其中某⼀层,极大地降低了维护成本和维护时间。
  • 可以很容易的用新的实现来替换原有层次的实现。
  • 有利于标准化。

企业命名规范

常见命名命名风格介绍

大驼峰:所有单词首字母都需要大写,又叫帕斯卡命名法,比如: UserController

小驼峰:除了第一个单词,其他单词首字母大写,比如: userController

蛇形:用下划线(_)作用单词间的分隔符,一般小写,又叫下划线命名法,比如: user_controller

串形:用短横线(-)作用单词间的分隔符,又叫脊柱命名法,比如: user-controller

大驼峰风格

类名使用大驼峰风格,但以下情形例外:DO/BO/DTO/VO/AO。

小驼峰风格

方法名、参数名、成员变量、局部变量统⼀使用小驼峰风格。

包名

包名统⼀使用小写,点分隔符之间有且仅有⼀个自然语义的英语单词。

常见注解

  • @RequestMapping:路由映射
  • @RequestParam:后端参数重命名
  • @RequestBody:接收JSON类型的参数
  • @PathVariable:接收路径参数
  • @RequestPart:上传文件
  • @ResponseBody:返回数据
  • @CookieValue:从Cookie中获取值
  • @SessionAttribute:从Session中获取值
  • @RequestHeader:从Header中获取值
  • @Controller:定义一个控制器,Spring框架启动时加载,把这个对象交给Spring管理,默认返回视图
  • @RestController:@ResponseBody+ @Controller 返回数据

Cookie与Session

Cookie和Session都是会话机制,Cookie是客户端机制,Session是服务端机制。二者通过Sessionld来联。SpringMVC内置HttpServletRequest,HttpServletResponse两个对象,需要使用时,直接在方法中添加对应参数即可,Cookie和Session可以从HttpServletRequest中来获取,也可以直接使用HttpServletResponse设置Http响应状态码。

相关推荐
互联网搬砖老肖2 分钟前
21 天 Python 计划:MySQL索引机制从基础到应用
python·mysql·adb
Lounger6619 分钟前
107.二叉树的层序遍历II- 力扣(LeetCode)
python·算法·leetcode
Code_流苏19 分钟前
《Python星球日记》第25天:Pandas 数据分析
python·数据分析·pandas·数据聚合·时间序列
程序员三藏25 分钟前
Selenium三大等待
自动化测试·软件测试·数据库·python·selenium·测试工具·测试用例
_沉浮_1 小时前
Spring AI使用tool Calling和MCP
java·人工智能·spring
明月看潮生1 小时前
青少年编程与数学 02-016 Python数据结构与算法 14课题、动态规划
python·算法·青少年编程·动态规划·编程与数学
明月看潮生1 小时前
青少年编程与数学 02-016 Python数据结构与算法 11课题、分治
python·算法·青少年编程·编程与数学
杂学者1 小时前
python办公自动化---pdf文件的读取、添加水印
python
小学生搞程序1 小时前
学习Python的优势体现在哪些方面?
开发语言·python·学习
_玖-幽1 小时前
Python 数据分析01 环境搭建教程
大数据·python·jupyter