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

icp ip 网站备案查询系统大概在网上建立一个网站一年要花多少钱呀

icp ip 网站备案查询系统,大概在网上建立一个网站一年要花多少钱呀,wordpress页面背景颜色,wordpress top0.9主题引言 Java是企业级应用开发的主流语言之一#xff0c;而我们作为使用Java语言的程序员#xff0c;职称有初级、中级、高级、资深、经理、架构#xff0c;但我们往往只是慢慢通过经验的积累迭代了自己的等级#xff0c;如果没有保持学习的习惯#xff0c;大多数程序员会停留…引言 Java是企业级应用开发的主流语言之一而我们作为使用Java语言的程序员职称有初级、中级、高级、资深、经理、架构但我们往往只是慢慢通过经验的积累迭代了自己的等级如果没有保持学习的习惯大多数程序员会停留在接近高级的位置简单来讲就是CRUD工程师小编不甘心于此所以长期保持学习新知识的习惯尝试很多大于自身能力的事情我相信未来的某一天我会感谢曾经努力的自己下面的内容是我在尝试架构项目时总结的经验希望能帮助到大家 前期准备 需求分析明确项目的功能需求技术选型 Java版本 817框架选择 应用SpringSpringBootSpringCloudORM对象关系映射JPAMyBatis(Plus)数据库选择 关系型MySQLPostgreSQLOracle非关系型RedisMongoDB时序数据库(物联网)TDengineIoTDB构建工具 MavenGradle 项目结构设计 分层架构 认证授权控制层业务层数据层模块划分 按功能划分按业务划分 简单示例 跳过项目的功能需求分析具体项目具体分析技术选型Java版本选择17应用框架选择SpringBootORM对象关系映射框架选择MyBatis-Plus数据库选择MySQL 8.x构建工具选择Maven项目结构拦截器中完成认证授权控制层接收用户请求调用业务层的方法业务层处理逻辑调用数据层的方法数据层与数据库交互跳过模块划分具体项目具体分析 准备开发环境 1.下载安装配置Java17 访问官方的下载地址Java Archive Downloads - Java SE 17 1.下载并解压  2.配置环境变量 我的电脑 - 属性 - 高级系统设置 - 环境变量 -系统变量(S) - 新建(W) 双击系统变量(S)中的Path - 新建(N)  确定后打开命令提示符界面快捷键 winR 输入 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.0JWT常见的框架有Spring SecurityApache 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) ) ENGINEINNODB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci COMMENT用户表; CREATE INDEX idx_username ON t_user(username); 5.创建用户实体 为了方便实体类的编写我们引入依赖 - 小辣椒 !-- 小辣椒 -- dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/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.创建用户数据层 技术选型时数据库是MySQLORM(对象关系映射)框架是MyBatis-Plus因此引入对应依赖 !-- MySQL -- dependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdversion8.0.33/version /dependency !-- MyBatis-Plus -- dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.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?useSSLfalseserverTimezoneUTCuseUnicodetruecharacterEncodingutf-8username: 你的用户名password: 你的密码driver-class-name: com.mysql.cj.jdbc.Driver 用户数据层 /*** 用户数据层* author muze*/ public interface UserMapper extends BaseMapperUser { } 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();// 构建查询条件LambdaQueryWrapperUser userLambdaQueryWrapper new LambdaQueryWrapperUser().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://www.hkea.cn/news/14346308/

相关文章:

  • 网站信息化建设建议新冠为什么莫名消失了
  • 企业网站建设感想wordpress用户头像
  • 生成网站地图站长工具特级a免费
  • 陕西建设厅八大员官方网站wordpress汇聚素材网
  • 免费国外医疗静态网站模板下载中学网站建设
  • 北京一家专门做会所的网站事业单位网站设计
  • 网站后台有安全狗外包网易
  • 在线教育网站开发软件内蒙古网站建设公司
  • 企业网站 生成html台州关键词优化推荐
  • 阿里巴巴国际站买家版建一个大型网站需要多少钱
  • 网站开发图片压缩企业网站建设设计公司
  • 可以做物理试验的网站有哪些软件开发项目
  • 网站建设方案设计心得做团购网站视频
  • 网站开发制作软件网站建设与管理用什么软件有哪些方面
  • 商城网站制作明细安阳县辛村镇
  • 手表哪个网站最好怎么去做网站
  • 郑州 科技有限公司 网站建设网页设计教程下载
  • 医疗器械网站建设方案软件商店下载电脑版
  • 中建一局华江建设有限公司网站站长之家端口扫描
  • 大兴安岭地网站seo桂林小程序制作
  • 做宠物的网站有哪些微信登录wordpress免费
  • 实用的企业网站优化技巧vi设计公司北京
  • 北京公司网站怎么制作论文中参考文献对不上
  • 网站项目建设规划书案例沧浪网站建设方案
  • 企业网站定制开发一条龙全包wordpress post fonts
  • 对网站建设的意见建议世界网站排名
  • 小吃培训网站源码广州市做网站的
  • 企业网站要怎么建设汉鼎中国 网站建设
  • 百度怎样建立网站邵阳网站建设制作
  • 地方门户网站app信息化网站建设的请示