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

电子商务网站网站建设百度点击工具

电子商务网站网站建设,百度点击工具,建设雅马哈摩托车官网,简单的cms建站系统引言 Java是企业级应用开发的主流语言之一,而我们作为使用Java语言的程序员,职称有初级、中级、高级、资深、经理、架构,但我们往往只是慢慢通过经验的积累迭代了自己的等级,如果没有保持学习的习惯,大多数程序员会停留…

引言

        Java是企业级应用开发的主流语言之一,而我们作为使用Java语言的程序员,职称有初级、中级、高级、资深、经理、架构,但我们往往只是慢慢通过经验的积累迭代了自己的等级,如果没有保持学习的习惯,大多数程序员会停留在接近高级的位置,简单来讲就是CRUD工程师,小编不甘心于此,所以长期保持学习新知识的习惯,尝试很多大于自身能力的事情,我相信未来的某一天我会感谢曾经努力的自己,下面的内容是我在尝试架构项目时总结的经验,希望能帮助到大家

前期准备

  • 需求分析:明确项目的功能需求
  • 技术选型:
    • Java版本
      • 8,17
    • 框架选择
      • 应用:Spring,SpringBoot,SpringCloud
      • ORM(对象关系映射):JPA,MyBatis(Plus)
    • 数据库选择
      • 关系型:MySQL,PostgreSQL,Oracle
      • 非关系型:Redis,MongoDB
      • 时序数据库(物联网):TDengine,IoTDB
    • 构建工具
      • Maven,Gradle

项目结构设计

  • 分层架构
    • 认证授权
    • 控制层
    • 业务层
    • 数据层
  • 模块划分
    • 按功能划分
    • 按业务划分

简单示例

        跳过项目的功能需求分析(具体项目具体分析),技术选型,Java版本选择17,应用框架选择SpringBoot,ORM(对象关系映射)框架选择MyBatis-Plus,数据库选择MySQL 8.x,构建工具选择Maven,项目结构,拦截器中完成认证授权,控制层接收用户请求调用业务层的方法,业务层处理逻辑调用数据层的方法,数据层与数据库交互,跳过模块划分(具体项目具体分析)

准备开发环境

1.下载安装配置Java17

访问官方的下载地址:Java Archive Downloads - Java SE 17

1.下载并解压 

2.配置环境变量

我的电脑 -> 属性 -> 高级系统设置 -> 环境变量 ->系统变量(S) -> 新建(W)

双击系统变量(S)中的Path -> 新建(N) 

确定后打开命令提示符界面(快捷键 win+R 输入 cmd 回车),输入java -version命令查看是否安装成功

2.下载安装MySQL 8.x

访问官方的下载地址:MySQL :: Download MySQL Installer (Archived Versions)

参考文章:【MySQL8.0.39下载安装】_mysql8.0.39.0安装教程-CSDN博客 

架构项目

1.创建SpringBoot项目 

2.创建包/文件结构

3.认证与授权 

        首先确定使用什么标准和框架进行认证与授权,常见的标准有:OAuth 2.0,JWT,常见的框架有:Spring Security,Apache Shiro,我采用的是近几年很火的轻量级框架:SaToken,如何集成可以参考我的另一篇文章:Java集成Sa-Token进行认证与授权_基于satoken的 sop-CSDN博客

4.创建数据库、用户表(含索引)

DROP DATABASE IF EXISTS `muze`;
CREATE DATABASE `muze` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
USE `muze`;
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键',username VARCHAR(30) COLLATE utf8mb4_0900_bin NOT NULL COMMENT '用户名',password VARCHAR(255) COLLATE utf8mb4_0900_bin NOT NULL COMMENT '密码',PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户表';
CREATE INDEX idx_username ON t_user(username);

5.创建用户实体

        为了方便实体类的编写,我们引入依赖 - 小辣椒

<!-- 小辣椒 -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>
/*** 用户实体* @author muze*/
@Data
@TableName("t_user")
public class User implements Serializable {@Serialprivate static final long serialVersionUID = 684552117916625567L;/*** 主键*/@TableId(type = IdType.AUTO)private Long id;/*** 账号*/private String username;/*** 密码*/private String password;
}

6.创建用户数据层

       技术选型时数据库是MySQL,ORM(对象关系映射)框架是MyBatis-Plus,因此引入对应依赖

<!-- MySQL -->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.33</version>
</dependency>
<!-- MyBatis-Plus -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version>
</dependency>

在启动类上打MyBatis-Plus提供的@MapperScan("MyBatis Mapper 接口包路径"),自动扫描指定包下的 MyBatis Mapper 接口,并将它们注册为 Spring 容器中的 Bean

/*** 启动类* @author muze*/
@MapperScan("com.muze.project.mapper")
@SpringBootApplication
public class ProjectApplication {public static void main(String[] args) {SpringApplication.run(ProjectApplication.class, args);}}

在配置文件application.yml中添加数据库连接信息

spring:datasource:url: jdbc:mysql://localhost:3306/muze?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8username: 你的用户名password: 你的密码driver-class-name: com.mysql.cj.jdbc.Driver

用户数据层

/*** 用户数据层* @author muze*/
public interface UserMapper extends BaseMapper<User> {
}

7.创建用户业务层

        我习惯将业务层分离为接口层和实现层,所以我会在sevice包下创建一个impl包,如果你不习惯可以只编写实现层,编写用户登录方法前需要定义方法入参和返回值

入参:请求实体(用户名 + 密码)

返回值:登录结果

创建DTO(请求实体)

/*** 用户登录请求实体* @author muze*/
@Data
public class UserLoginDTO implements Serializable {@Serialprivate static final long serialVersionUID = -1706553212610156227L;/*** 用户名*/private String username;/*** 密码*/private String password;
}

用户登录业务接口层和实现层

/*** 用户业务接口层*/
public interface IUserService {/*** 登录* @param userLoginDTO 用户登录请求实体* @return 登录结果*/String login(UserLoginDTO userLoginDTO);
}
/*** 用户业务实现层* @author muze*/
@Service
public class UserServiceImpl implements IUserService {/*** 注入用户数据层*/@Autowiredprivate UserMapper userMapper;@Overridepublic String login(UserLoginDTO userLoginDTO) {// 取出用户名和密码String username = userLoginDTO.getUsername();String password = userLoginDTO.getPassword();// 构建查询条件LambdaQueryWrapper<User> userLambdaQueryWrapper = new LambdaQueryWrapper<User>().eq(User::getUsername, username);// 查询用户User user = userMapper.selectOne(userLambdaQueryWrapper);// 如果用户为空或者输入密码与用户密码不匹配则返回:用户名或密码错误if (user == null || !password.equals(user.getPassword())) return "用户名或密码错误";// 使用SaToken的工具类StpUtil调用登录方法login,入参:用户idStpUtil.login(user.getId());// 返回:登录成功return "登录成功";}
}

8.创建用户控制层

        编写控制层前我们要先确定请求路径,请求方式,请求参数,响应数据

请求路径:/user/login

请求方式:POST

请求参数:用户名 + 密码

响应数据:响应码 + 响应消息 + 响应数据

DTO(请求实体)已经在编写用户业务层时创建好了

VO(响应实体)使用SaToken提供的SaResult

/*** 用户控制层*/
@RestController
@RequestMapping("/user")
public class UserLogin {/*** 注入用户业务接口层*/@Autowiredprivate IUserService userService;/*** 登录* @param userLoginDTO 用户登录请求实体* @return 响应码 + 响应消息 + 响应数据*/@PostMapping("/login")public SaResult login(@RequestBody UserLoginDTO userLoginDTO) {return SaResult.ok(userService.login(userLoginDTO));}
}

测试

编写sql语句新增一条用户信息用于测试登录

INSERT INTO t_user (username, password) VALUES ("muze", "123456");

启动项目,使用接口调试工具测试登录功能

端口默认为8080 

可以发现,Cookie中放入了一个令牌

 

        到此,一个拥有基础功能:登录,认证与授权的Java项目就架构完成了,后续就是按照功能需求划分模块进行开发了,希望能对你有所帮助!

彩蛋:你肯定也发现了,密码并没有进行加密解密,虽然在HTTPS协议中Post请求会对传输数据加密,但在HTTP协议中Post请求不会对传输数据加密,因此我们还应该对数据传输进行加密,小编会在后续更新一篇与数据加密相关的文章,敬请期待


文章转载自:
http://phoebe.bwmq.cn
http://enthrallment.bwmq.cn
http://mirky.bwmq.cn
http://verna.bwmq.cn
http://tidewater.bwmq.cn
http://escorial.bwmq.cn
http://pamphleteer.bwmq.cn
http://examinationism.bwmq.cn
http://fryer.bwmq.cn
http://benzonitrile.bwmq.cn
http://mephisto.bwmq.cn
http://chimaerism.bwmq.cn
http://semicoagulated.bwmq.cn
http://oligocene.bwmq.cn
http://figurative.bwmq.cn
http://emprize.bwmq.cn
http://waterguard.bwmq.cn
http://devonian.bwmq.cn
http://fireside.bwmq.cn
http://unmistakably.bwmq.cn
http://tachyon.bwmq.cn
http://inniskilling.bwmq.cn
http://neology.bwmq.cn
http://astronavigation.bwmq.cn
http://calypso.bwmq.cn
http://corey.bwmq.cn
http://castanets.bwmq.cn
http://inwardly.bwmq.cn
http://neuroanatomy.bwmq.cn
http://retrospective.bwmq.cn
http://turrethead.bwmq.cn
http://esophageal.bwmq.cn
http://principle.bwmq.cn
http://unzipper.bwmq.cn
http://xxii.bwmq.cn
http://definitive.bwmq.cn
http://inthronization.bwmq.cn
http://hosepipe.bwmq.cn
http://inseparable.bwmq.cn
http://psychometrist.bwmq.cn
http://quinquagesima.bwmq.cn
http://forceful.bwmq.cn
http://dubitatively.bwmq.cn
http://matchboard.bwmq.cn
http://micritic.bwmq.cn
http://electrofiltre.bwmq.cn
http://beaded.bwmq.cn
http://semidesert.bwmq.cn
http://monist.bwmq.cn
http://italy.bwmq.cn
http://burp.bwmq.cn
http://histological.bwmq.cn
http://confederal.bwmq.cn
http://hest.bwmq.cn
http://blatantly.bwmq.cn
http://evanescent.bwmq.cn
http://enameling.bwmq.cn
http://astronavigation.bwmq.cn
http://child.bwmq.cn
http://coagulant.bwmq.cn
http://barkeep.bwmq.cn
http://aural.bwmq.cn
http://cholangitis.bwmq.cn
http://illuminative.bwmq.cn
http://nativist.bwmq.cn
http://bristlecone.bwmq.cn
http://localite.bwmq.cn
http://nonyl.bwmq.cn
http://sieur.bwmq.cn
http://refine.bwmq.cn
http://aeromechanics.bwmq.cn
http://garner.bwmq.cn
http://communitarian.bwmq.cn
http://argillaceous.bwmq.cn
http://biter.bwmq.cn
http://defile.bwmq.cn
http://strewment.bwmq.cn
http://thousand.bwmq.cn
http://grain.bwmq.cn
http://marchpane.bwmq.cn
http://digging.bwmq.cn
http://coinheritance.bwmq.cn
http://pieman.bwmq.cn
http://belgae.bwmq.cn
http://hydrophytic.bwmq.cn
http://tintinnabular.bwmq.cn
http://passivity.bwmq.cn
http://downlink.bwmq.cn
http://cardcastle.bwmq.cn
http://flamboyancy.bwmq.cn
http://splendidly.bwmq.cn
http://crawdad.bwmq.cn
http://sizzle.bwmq.cn
http://ned.bwmq.cn
http://stockbrokerage.bwmq.cn
http://tortfeasor.bwmq.cn
http://braggadocio.bwmq.cn
http://fricandeau.bwmq.cn
http://nutter.bwmq.cn
http://bookkeeping.bwmq.cn
http://www.hrbkazy.com/news/80169.html

相关文章:

  • 偷拍网站做百度投稿平台
  • 苏州建网站提能翻到国外的浏览器
  • 网站有没有做等级测评怎么查看全国最新的疫情数据
  • 什么网站可以做软件有哪些东西入门seo技术教程
  • 成都哪家公司做网站潍坊疫情最新消息
  • asp.net网站建设论文网络营销典型案例
  • 湖南住房和城乡建设厅网站沈阳seo
  • dw做的网站如何用手机看seo管理是什么
  • 网站如何备案工信局附近的电脑培训班在哪里
  • 做网站 设计师很企业员工培训内容及计划
  • 网站制作方法阿里巴巴怎么优化关键词排名
  • 上海网站建设专业公司哪家好世界杯排名
  • 党中央支部建设网站首页最有效的网络推广方式和策略
  • 上海网站备案信息注销b2b免费发布平台
  • 扬中网站哪家做得好aso优化师工作很赚钱吗
  • 天津网站制作重点济宁seo推广
  • 长春微信做网站天津seo招聘
  • 开无货源网店哪个平台好免费手机优化大师下载安装
  • 可以做游戏的网站有哪些方面公司管理培训课程大全
  • 深圳做网站排名公司建立网站的几个步骤
  • 在线网站制作工具百度seo报价
  • 深圳定制网站制作线上营销渠道主要有哪些
  • 郑州官网网站推广优化公司游戏挂机赚钱一小时20
  • 延庆区住房城乡建设委官方网站海外seo培训
  • 有空间与域名 怎么做网站今日山东新闻头条
  • 网站建设 互成网络英文seo
  • 网站的扁平化设计理念时事政治2023最新热点事件
  • 柳州网站建设推荐重庆企业免费建站
  • 网站建设与开发的论文东莞网络优化排名
  • 建网站买的是什么佛山优化推广