【后端开发】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响应状态码。

相关推荐
大模型铲屎官13 分钟前
【深度学习-Day 23】框架实战:模型训练与评估核心环节详解 (MNIST实战)
人工智能·pytorch·python·深度学习·大模型·llm·mnist
阿幸软件杂货间37 分钟前
PPT转图片拼贴工具 v1.0
python·powerpoint
AIGC_北苏1 小时前
DrissionPage爬虫包实战分享
爬虫·python·drissionpage
面朝大海,春不暖,花不开1 小时前
Spring Boot MVC自动配置与Web应用开发详解
前端·spring boot·mvc
想用offer打牌1 小时前
面试回答喜欢用构造器注入,面试官很满意😎...
后端·spring·面试
唐墨1231 小时前
PublishSubject、ReplaySubject、BehaviorSubject、AsyncSubject的区别
java·后端·spring
YBCarry_段松啓2 小时前
uv:下一代 Python 包管理器
人工智能·python
yorushika_2 小时前
python打卡训练营打卡记录day45
开发语言·python·深度学习·tensorboard
封奚泽优2 小时前
使用Python进行函数作画
开发语言·python
fc&&fl2 小时前
大模型面试题总结
人工智能·python