当前位置: 首页 > news >正文

关于web应用开发

1.关于web

        Web应用开发是指创建和构建能够在Web浏览器中运行的应用程序。它涉及使用各种技术和工具来设计、开发和实现基于Web的应用程序。下面是一些常见的概念和技术,涵盖了Web应用开发的关键方面:

1. 前端开发:前端开发主要关注用户界面的设计和实现。它使用HTML、CSS和JavaScript等技术来构建网页,并通过与后端交互获取数据和处理用户交互。

2.后端开发:后端开发处理Web应用程序的服务器端逻辑。它使用各种编程语言(如Java、Python、Node.js等)和框架(如Django、Flask、Express等)来处理数据存储、业务逻辑和与前端的通信。

3.据库:Web应用通常需要持久化存储数据。数据库是一种结构化数据存储和管理系统,用于存储和检索数据。流行的数据库包括MySQL、PostgreSQL和MongoDB等。

4 API:API(应用程序接口)定义了不同软件组件之间的通信规范。通过API,前端可以向后端发送请求并获取数据,后端则可以响应这些请求并提供数据。

5 .安全性:Web应用开发需要考虑安全性,以保护用户数据和应用程序免受恶意攻击。常见的安全性措施包括身份验证、数据加密、防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等。

6 .前端框架和库

前端开发常常使用各种框架和库来简化开发过程。流行的前端框架包括React、Vue.js和Angular等,它们提供了组件化开发、状态管理和路由等功能。

7 .测试和调试:测试和调试是Web应用开发中至关重要的环节。开发者可以使用单元测试、集成测试和端到端测试等技术来确保应用程序的质量和稳定性。

8 .部署和托管:部署是将Web应用程序发布到生产环境中的过程。开发者可以使用各种工具和平台来托管Web应用程序,如云服务提供商(如AWS、Azure)、虚拟私有服务器(VPS)和容器化技术(如Docker)等。

2. MyBatis和MyBatis-Plus的简介

2.1 MyBatis

是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis将SQL语句和Java代码解耦,提供了很好的灵活性和可维护性。在MyBatis中,我们需要手写SQL语句。

2.2 MyBatis-Plus

是在MyBatis基础上进行封装和扩展的框架,它提供了更多的操作方法和便捷的编程方式,可以帮助开发者更加快速地完成开发任务。同时,MyBatis-Plus也支持Lambda表达式进行查询,使得代码更加简洁易读。

2.3 如何集成MyBatis和MyBatis-Plus

2.3.1 引入相关依赖

pom.xml文件中添加以下依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.x.x</version>
</dependency>

 

2.3.2配置数据源

application.propertiesapplication.yml文件中配置数据源信息。

spring:datasource:url: jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf-8username: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driver

 

2.3.3配置MyBatis和MyBatis-Plus

我们可以使用@MapperScan注解来自动扫描并注册Mapper接口。同时,我们还需要配置MyBatis-Plus的分页插件。

@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {@Beanpublic PaginationInterceptor paginationInterceptor() {return new PaginationInterceptor();}
}

MyBatis和MyBatis-Plus的基本增删改查操作示例

假设我们有一个User实体类和对应的UserMapper接口,下面给出MyBatis和MyBatis-Plus的基本增删改查操作示例:

public interface UserMapper {// MyBatis的查询方法@Select("SELECT * FROM user WHERE id = #{id}")User findById(@Param("id") Long id);// MyBatis-Plus的查询方法User selectById(@Param("id") Long id);List<User> selectList(Wrapper<User> wrapper);int insert(User user);int updateById(User user);int deleteById(Long id);
}
@Service
public class UserService {@Autowiredprivate UserMapper userMapper;// 查询用户(MyBatis)public User getUserById(Long id) {return userMapper.findById(id);}// 查询用户(MyBatis-Plus)public User getUserById2(Long id) {return userMapper.selectById(id);}// 新增用户public void addUser(User user) {userMapper.insert(user);}// 修改用户public void updateUser(User user) {userMapper.updateById(user);}// 删除用户public void deleteUser(Long id) {userMapper.deleteById(id);}// 查询用户列表(MyBatis-Plus)public List<User> getUserList() {return userMapper.selectList(null);}
}

这里演示了基本的增删改查操作,其中MyBatis需要手写SQL语句,而MyBatis-Plus提供了更加便捷的编程方式。

3.案例

下面是我在开发中印象比较深的案例:

实现一个简单的RESTful API接口可以通过Spring Boot框架和Spring MVC来实现。

3.1实现一个简单的RESTful API接口

 

@RestController
@RequestMapping("/api/users")
public class UserController {@Autowiredprivate UserService userService;@GetMapping("/{id}")public ResponseEntity<User> getUserById(@PathVariable Long id) {User user = userService.getUserById(id);return ResponseEntity.ok(user);}@PostMappingpublic ResponseEntity<Void> addUser(@RequestBody User user) {userService.addUser(user);return ResponseEntity.status(HttpStatus.CREATED).build();}@PutMapping("/{id}")public ResponseEntity<Void> updateUser(@PathVariable Long id, @RequestBody User user) {user.setId(id);userService.updateUser(user);return ResponseEntity.noContent().build();}@DeleteMapping("/{id}")public ResponseEntity<Void> deleteUser(@PathVariable Long id) {userService.deleteUser(id);return ResponseEntity.noContent().build();}
}

3.2 使用Swagger构建API文档

@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket api() {return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.basePackage("com.example.demo")).paths(PathSelectors.any()).build();}
}

3.3异常处理和统一返回结果封装

 

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(Exception.class)public ResponseEntity<ApiError> handleException(Exception ex) {ApiError apiError = new ApiError(HttpStatus.INTERNAL_SERVER_ERROR, ex.getMessage());return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(apiError);}
}
public class ApiError {private HttpStatus status;private String message;// 省略构造方法和Getter/Setter方法
}

3.4配置全局拦截器和过滤器

@Component
public class CustomInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {// 在请求处理之前进行调用(Controller方法调用之前)return true;}// 省略postHandle和afterCompletion方法
}
@Component
public class CustomFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {// 在请求处理之前进行调用chain.doFilter(request, response);// 在请求处理之后进行调用}// 省略init和destroy方法
}

通过上述代码示例,我们可以了解到如何在Web开发中实践RESTful API接口的实现、Swagger构建API文档、异常处理和统一返回结果封装以及全局拦截器和过滤器的配置。

 4.学习笔记和心得体会分享

  • Spring Boot框架通过简化配置和提供自动化的特性,使得开发者可以更加专注于业务逻辑的实现,而无需过多关注底层的配置和细节。
  • 使用Spring Boot可以快速搭建一个基于Java的Web应用程序,减少了繁琐的配置工作,提高了开发效率。
  • 通过使用注解和自动装配的方式,可以方便地实现各种功能,如RESTful API的定义、数据访问和业务逻辑的处理等。
  • Spring Boot提供了丰富的插件和工具,如Swagger用于API文档生成、Actuator用于监控和管理应用程序等,可以方便地进行开发和调试。
  • 在开发过程中,合理划分和设计Controller、Service和Repository等模块,遵循单一职责原则,提高代码的可读性和可维护性。
  • 异常处理和统一返回结果封装是常见的开发需求,通过全局异常处理和自定义返回结果类,可以对异常进行统一处理和返回友好的错误信息。

总的来说,通过学习和实践Spring Boot应用程序的开发,我对Spring Boot框架的特性和使用方法有了更深入的了解,并能够更加高效地进行Web应用程序的开发。同时,也加深了对RESTful API设计、异常处理和统一返回结果封装等方面的理解和实践经验。

http://www.xdnf.cn/news/828271.html

相关文章:

  • 软件测试基础理论体系学习9-什么是网页测试?什么是网站测试?如何开展测试?
  • 算法科普:什么是约瑟夫环
  • Scrapy爬虫爬取电影天堂
  • 11种经典滤波算法
  • PaddleX 3.0-beta重磅开源:多场景低代码AI开发,本地多硬件全兼容
  • 端口扫描原理
  • 游戏测试大揭秘,帮你轻松过关
  • 暴力破解之验证码识别
  • BSD家族大观:FreeBSD、OpenBSD、NetBSD
  • 【Zblog搭建博客网站】windows环境搭建属于自己的博客并发布上线 - cpolar内网穿透
  • 几十个珍藏的网站,相信你会用到的
  • javascript基础入门教程,javascript开发技术大全
  • mdio协议
  • Linux下僵尸进程的处理与回收
  • 什么是一级域名和二级域名
  • 创建版本库
  • Linux上Bochs的安装和配置
  • PHP-FPM、FastCGI和PHP-CGI的用途及示例代码
  • 地心护核者xapofx1_5.dll丢失怎么办?地心护核者xapofx1_5.dll丢失多种解决方法全面分析
  • 去padding_心中无码,自然高清 || 联合去马赛克与超分辨率研究论文Pytorch复现
  • minidump详细介绍
  • 关于不能往yahoo,sina等地址发邮件的问题
  • yandex.com在线以图搜图(找资源网站)
  • linux 访问本地网页内容,(转)linux 命令访问url: curl http://www.baidu.com/index.html...
  • 【解决方案】win11中本地组策略编辑器(gpedit.msc)打不开
  • 模拟电子技术基础 第一章
  • GSLB是什么?谈谈对该技术的一点理解
  • CocoaPods安装以及一些问题处理-2022.6.21
  • Oracle 体系结构(24)—— Oracle 的权限管理与角色(role)
  • JS事件之onmouseover 、onmouseout 与onmouseenter 、onmouseleave区别