Web一课一得

目录

一、Web介绍

二、常用注解

1、@RequestMapping

2、@GetMapping

3、@PostMapping

4、@ApiModelProperty

5、@Override                             

三、应用分层

四、自定义异常处理

1、有模板引擎

2、模板/静态目录种均无相应错误页面,直接响应SpringBoot默认错误页面

五、业务对象建模

1、相关知识

Jpa

引入依赖

Jpa配置


一、Web介绍

Web课程通常涵盖与Web开发相关的各个方面。以下是一些常见的Web课程主题:

  1. HTML/CSS:这是Web开发的基础,介绍如何使用HTML和CSS创建和设计网页。
  2. JavaScript:介绍JavaScript编程语言,以及如何使用它来为网页添加动态功能和交互性。
  3. Web服务器:介绍如何使用服务器端语言(如PHP、Python、Ruby等)来处理Web请求,并生成动态内容。
  4. 数据库:介绍如何使用数据库来存储和检索Web应用程序的数据。
  5. Web框架:介绍一些流行的Web开发框架,如Django、Ruby on Rails等,以帮助开发者更高效地构建Web应用程序。
  6. Web安全:介绍Web应用程序的安全性问题和常见的安全漏洞,如跨站脚本攻击(XSS)和SQL注入等。
  7. Web性能优化:介绍如何优化Web应用程序的性能,包括减少加载时间、提高响应速度等。
  8. Web设计和用户体验:介绍如何设计和构建易于使用和访问的Web界面,包括对不同设备的支持。
  9. Web开发工具:介绍一些常用的Web开发工具和技术,如版本控制系统(如Git)、自动化测试工具等。
  10. 实践项目:通过实践项目来应用所学知识,通常包括构建个人网站或Web应用程序等。

二、常用注解

在Web开发中,注解(Annotation)是一种重要的工具,用于简化代码和提高开发效率。以下是一些常用的Java Web注解及其示例代码:

1、@RequestMapping

用于将HTTP请求映射到特定的处理器方法。它允许开发者将请求的URL和HTTP方法与处理器方法关联起来,从而简化路由逻辑。用于映射HTTP请求到特定的处理器方法。

2、@GetMapping

用于处理HTTP GET请求,将请求映射到特定的处理器方法。它相当于@RequestMapping(method = RequestMethod.GET)。当用户通过GET方法发送请求时,Spring MVC会根据@GetMapping注解将请求路由到相应的处理器方法。

3、@PostMapping

用于处理HTTP POST请求,将请求映射到特定的处理器方法。它也相当于@RequestMapping(method = RequestMethod.POST)。当用户通过POST方法发送请求时,Spring MVC会根据@PostMapping注解将请求路由到相应的处理器方法。

4、@ApiModelProperty

Swagger的注解之一,用于在生成的API文档中定义和描述接口的属性信息。在使用@ApiModelProperty注解时,可以在属性上方添加该注解,指定属性的描述、数据类型、是否必需等信息。

5、@Override                             

在 Spring 中,@Override 注解可以用于以下情况:

(1)重写 Spring 框架中的接口方法:Spring 框架中的许多接口都定义了方法,这些方法可以被实现类重写。使用 @Override 注解可以确保实现类正确地重写了接口中的方法。

(2)重写 Spring 框架中的抽象方法:如果一个类继承了 Spring 框架中的抽象类或实现了其中的抽象方法,那么这些方法需要被重写。使用 @Override 注解可以确保这些方法被正确地重写。(3)重写 Spring 框架中的回调方法:Spring 框架提供了许多回调方法,如 BeanPostProcessorBeanFactoryPostProcessor 等。这些方法可以在 Spring 容器初始化时被调用。如果需要在这些方法中进行自定义操作,可以使用 @Override 注解来重写这些方法。

三、应用分层

根据业务架构实践,结合业界分层规范与流行技术框架分析,推荐应用分层如图所示。默认上层依赖于下层,箭头关系表示可以直接依赖。

开放API层:可直接封装Service接口暴露成RPC接口;通过Web封装成http接口;网关控制层等。

终端显示层:隔断模板渲染显示层。

Web层:主要对访问控制进行转发,各类基本参数校验,或不服用的业务简单处理。

Service层:具体的业务逻辑服务。

DAO层:数据访问层,与底层MySQL、SQL Server、Mango DB等进行数据交互。

外部数据接口:外部(应用)数据存储服务提供的接口(如:数据迁移应用场景)

四、自定义异常处理

1、有模板引擎

精确匹配error状态码,通过将错误页面命名为具体的错误状态码,例如:404.html放在引擎目
录templates/error目录中,当发生对应状态码错误时,就可以响应对应的模板页
模糊匹配error状态码,通过定义4xx或5xx,匹配对应类型的所有错误
此种方式,精确匹配优先于模糊匹配。

timestamp:时间戳
status:状态码
error:错误提示
exception:异常对象
message:异常消息
errors:JSR303数据校验错误

2、模板/静态目录种均无相应错误页面,直接响应SpringBoot
默认错误页面

如果BasicErrorController的errorhtml方法没有找到对应的view对象,将前往error定义在
ErrorMvcAutoConfiguation的defaultErrorView中

五、业务对象建模

1、相关知识

Jpa

JavaPersistenceAPI,Java的持久层API,Jpa定义了一系列标准,让实体类和数据库中的表建立
对应关系。Jpa的实现思想是ORM(ObjectRelationMapping),对象关系映射,用于在关系数据库
和业务实体对象之间作映射。
Jpa不是一个具体的框架,是一类框架的总称,持久层框架Hibernate是Jpa的一个具体实现,
springdatajpa是在Hibernate基础之上的封装实现。
springdatajpa的集成开发,可以规避sql语句的编写,侧重于java编码实现,另一个数据库层框
架mybatis则是比较专注sql语句。

引入依赖

/pom.xml配置如下:

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--H2Database为开源嵌入式数据库引擎,提供便捷的web控制台用于操作和管理数据库内容,可以兼容
主流数据库-->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>

Jpa配置

spring:
#配置数据源
datasource:
driver-class-name:com.mysql.cj.jdbc.Driver
url:jdbc:mysql://localhost:3306/dev_practices?characterEncoding=UTF-
8&userSSL=false&serverTimezone=UTC%2B8
username:root
password:123456
jpa:
#JPA配置,hibernate.ddl-auto,完成自动建表规则的设置,并确认是否打印sql,便于console
查看定位
hibernate:
ddl-auto:update
show-sql:true
server:
port:8081
#日志处理为展示mybatis运行sql语句
logging:
level:
cn.edu.lzzy:debug
file:
name:dev.log

Spring data Jpa注解

注解说明
@Entity类注解。注解该类是一个实体类,用于进行实体类和数据库中的表建立关
联关系
@Table类注解。注解该类可以修改表名称,此注解可以忽略不用
@Id属性注解。注解属性字段是主键,系必备注解,不可缺少
@GeneratedValue属性注解。和@Id注解一起使用,用于定义主键呈现方式
@GeneratedValue(strategy=GenerationType.IDENTITY):自增主键
(mysql使用最频繁,oracle不支持)
@GeneratedValue(strategy=GenerationType.AUTO):默认主键生成策略
(mysql默认自增主键)
@GeneratedValue(strategy=GenerationType.SEQUENCE):根据底层数
据库序列生成主键(oracle支持,mysql不支持)
@GeneratedValue(strategy=GenerationType.TABLE):用特定数据库表
格保存主键,很少使用
@Column属性注解。定义字段映射到数据库的特征(字段名称、字段长度等)
@Transient属性注解。标注字段不会被映射到数据库中
@OneToOne类与类之间的关联关系。一对一关系
@ManyToOne类与类之间的关联关系。多对一关系
@OneToMany类与类之间的关联关系。一对多关系
@ManyToMany类与类之间的关联关系。多对多关系

  • 25
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值