开发工具及框架分享

文章目录

  • 前言
  • 一、IDEA 开发工具知识分享
    • 1.1 功能特点介绍
    • 1.2 常见插件使用
    • 1.3 快捷键设置
    • 1.4 代码调试
  • 二、Maven项目依赖管理介绍
    • 2.1 Maven 介绍
    • 2.2 Maven 安装及配置
    • 2.3 Maven 功能与特性
    • 2.4 打包测试
  • 三、Springboot框架介绍
    • 3.1 核心特征概述
    • 3.2 常用注解介绍
    • 3.3 自动装配原理
  • 四、Mybatis介绍
    • 4.1 简介
    • 4.2 引入依赖
    • 4.3 编写配置
    • 4.4 开启包扫描
    • 4.5 代码生成器
  • 五、Redis介绍
    • 5.1 Redis 简介
    • 5.2 Redis 优点
    • 5.3 SpringBoot整合Redis
  • 六、代码案例

前言

一、IDEA 开发工具知识分享

1.1 功能特点介绍

IntelliJ IDEA是一款非常强大的Java开发工具,具有以下功能特点:

  • 智能代码补全:IDEA可以根据代码的上下文自动补全代码,提高编码效率。

  • 代码生成和重构:IDEA可以自动生成getter、setter、构造函数等代码,同时支持一键重构,方便修改代码结构。

  • 代码分析:IDEA可以对代码进行静态分析,帮助开发者发现潜在的问题和错误。

  • 调试功能:IDEA内置了强大的调试器,支持断点、条件断点、表达式求值等功能。

  • 版本控制集成:IDEA支持Git、SVN等版本控制工具,方便团队协作。

  • 数据库工具:IDEA内置了数据库工具,可以直接连接数据库进行查询和编辑。

  • 插件系统:IDEA支持丰富的插件,可以根据需要扩展功能。

  • 多语言支持:除了Java,IDEA还支持Kotlin、Scala、Groovy等JVM语言,以及JavaScript、HTML、CSS等前端语言。

总之,IntelliJ IDEA是一款非常强大的Java开发工具,可以帮助开发者提高编码效率,保证代码质量。

1.2 常见插件使用

  • Lombok 插件可以帮助开发者减少冗余的代码,例如 getter、setter、构造函数等。安装 Lombok 插件后,只需在类上添加相应的注解,插件会自动生成相应的代码。
  • MyBatisX插件是一款用于提高MyBatis开发效率的插件。它提供了代码生成、SQL预览、自动补全等功能,帮助开发者更高效地进行MyBatis开发。
  • Rainbow Brackets 插件可以为不同类型的括号添加不同的颜色,帮助开发者更容易地识别括号。

1.3 快捷键设置

  • 回到上一步 Ctrl + Alt+ <-(左箭头)
  • 回到下一步 Ctrl + Alt + ->(右箭头)
  • 返回方法类型 Ctrl + Alt + V
  • 重复行 Ctrl + D
  • 删除行 Ctrl + Y
  • 进入方法 Ctrl + 右击
  • 查找 Ctrl + F
  • 替换 Ctrl + R
  • 全局查找 Ctrl + Shift + F
  • 全局替换 Ctrl + Shift + R

1.4 代码调试

二、Maven项目依赖管理介绍

2.1 Maven 介绍

Maven是一个项目管理和构建自动化工具,主要用于Java项目。它可以帮助开发者管理项目的构建、报告和文档等。Maven的核心功能是通过一个pom.xml文件来管理项目的依赖、插件和构建配置。

2.2 Maven 安装及配置

官方下载地址:https://archive.apache.org/dist/maven/maven-3/

  1. 下载Maven安装包(高版本JDK,尽量选择高版本Maven

在这里插入图片描述

  1. 将下载好的压缩包,解压至要安装的目录下,即可完成安装(建议不要放到C盘)

  2. 配置环境变量
    在系统变量中点击新建,变量名为MAVEN_HOME,变量值填写你maven的安装路径在这里插入图片描述
    在系统变量中找到Path并双击,点击新建,添加%MAVEN_HOME%\bin
    在这里插入图片描述

  3. 出现如下信息说明安装配置完成
    在这里插入图片描述

2.3 Maven 功能与特性

  • 安装Maven:首先需要下载并安装Maven,然后配置环境变量,将Maven的bin目录添加到PATH中。

  • 创建Maven项目:使用命令mvn archetype:generate创建一个基本的Maven项目结构。

  • pom.xml文件:这是Maven的核心配置文件,用于定义项目的基本信息、依赖、插件等。

  • 依赖管理:在pom.xml文件中添加依赖,Maven会自动下载和管理这些依赖。

  • 构建项目:使用命令mvn clean install构建项目,Maven会根据pom.xml文件中的配置执行相应的任务。

  • 常用命令:除了上述命令外,还有mvn compile(编译源代码)、mvn test(运行测试用例)等常用命令。

  • 仓库:Maven使用仓库来存储和管理项目依赖的jar包。可以配置本地仓库和远程仓库。

  • 插件:Maven通过插件来扩展其功能,例如编译源代码、运行测试用例等。可以在pom.xml文件中配置插件。

  • 生命周期:Maven将项目的构建过程分为多个阶段,如编译、测试、打包等。这些阶段组成了Maven的生命周期。

  • 继承与聚合:Maven支持项目的继承和聚合,可以方便地管理多模块项目。

  • 约定优于配置:这意味着在使用Maven时,开发者需要遵循一些默认的约定,以减少配置文件的数量和复杂性。

project
├─src
│  ├─main
│  │  ├─java
│  │  │  └─com
│  │  │      └─example
│  │  │          └─myproject
│  │  │              ├─controller
│  │  │              ├─service
│  │  │              └─model
│  │  │              └─common
│  │  └─resources
│  │      └─application.xml
│  │      └─log4j2.xml
│  └─test
│      ├─java
│      │  └─com
│      │      └─example
│      │          └─myproject
│      │              └─controller
│      │              ├─service
├─pom.xml

2.4 打包测试

在这里插入图片描述
在这里插入图片描述
cmd 输入java -jar springBoot-mybatis-demo.jar 运行jar包,运行成功
在这里插入图片描述

三、Springboot框架介绍

Spring生态圈:https://spring.io/why-spring
介绍SpringBoot前先大致介绍一下Spring,Spring是Spring社区的基石,Spring初衷是简化开发但是由于发展到后面它与其它框架的配置变得非常繁琐,而且整合式需要清楚的知道版本依赖关系。
依赖 ->配置->代码->war包部署,丢到Tomcat容器等等。。。

基于上述问题SpringBoot由然而生,它的出现解决主要就是以上问题使开发人员进一步简化了开发。

3.1 核心特征概述

Spring Boot是一个基于Spring框架的开源项目,它可以简化Spring应用程序的创建、配置和部署。Spring Boot的主要目标是让开发者能够快速构建可立即运行的Spring应用程序,而无需进行繁琐的配置和设置。

  • 自动配置:Spring Boot提供了自动配置功能,可以根据项目中的依赖关系自动配置应用程序。这意味着开发者不需要手动编写大量的配置-文件,而是可以通过添加或删除依赖来轻松调整应用程序的配置。

  • 起步依赖:Spring Boot提供了许多预先定义的起步依赖,这些依赖包含了构建特定类型的应用程序所需的所有依赖项。开发者只需在项目的构建文件中添加相应的起步依赖,即可获得所需的所有库和插件。

  • 嵌入式Web服务器:Spring Boot支持嵌入式Web服务器,如Tomcat、Jetty和Undertow。这使得开发者可以将其应用程序打包为独立的可执行文件,而无需单独部署到外部Web服务器上。

  • 生产就绪:Spring Boot旨在构建生产就绪的应用程序。它提供了许多用于监视和管理应用程序的功能,如内置的HTTP服务器、健康检查和指标收集。

  • 数据访问:Spring Boot与各种数据访问技术(如JDBC、JPA、Hibernate和MyBatis)集成,使得开发者可以轻松地在应用程序中访问数据库。

  • 微服务支持:Spring Boot是构建微服务的理想选择,因为它可以轻松地与其他Spring项目(如Spring Cloud)集成,以实现服务发现、配置管理和负载均衡等功能。

  • 安全性:Spring Boot支持Spring Security,可以轻松地将安全性添加到应用程序中。开发者可以使用注解和配置文件来保护应用程序的端点和资源。

  • 单元测试:Spring Boot与JUnit、Mockito和Spring Test等测试框架集成,使得开发者可以轻松地编写和运行测试用例。

  • 生态系统:Spring Boot拥有庞大的生态系统,提供了大量的插件、库和工具,可以帮助开发者更轻松地构建和维护应用程序。

  • 社区支持:Spring Boot拥有一个活跃的社区,开发者可以在社区中找到大量的教程、文档和示例,以及获取帮助和支持。

3.2 常用注解介绍

  • @RestController
  • @RequestMapping
  • @Autowired
  • @Resource
  • @Service
  • @Repository
  • @Configuration
  • @Bean
  • @Component
  • @Value

上述注解都是向Spring IOC容器注册Bean组件。

3.3 自动装配原理

参考:https://blog.csdn.net/m0_49692893/article/details/123865091

四、Mybatis介绍

4.1 简介

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

ORM(Object-Relational Mapping,对象关系映射)框架是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

在MyBatis中,映射文件是用于描述如何从数据库中获取数据并映射到Java对象中的XML文件。映射文件中包含了SQL语句和映射规则。

动态SQL是指在SQL语句中使用条件判断或者循环等控制结构,使得SQL语句可以根据不同的条件生成不同的SQL。在MyBatis中,可以使用if、choose (when, otherwise)、foreach等标签来实现动态SQL。

4.2 引入依赖

SpringBoot 与 Myybatis 整合的依赖

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.0</version>
</dependency>
<!--MySQL 依赖-->
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope>
</dependency>

4.3 编写配置

########## 数据库配置 #########
spring:datasource: # 数据库配置driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://172.160.12.137:3306/test?useUnicode=true&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&allowMultiQueries=trueusername: rootpassword: roothikari:minimum-idle: 5maximum-pool-size: 20auto-commit: trueidle-timeout: 30000pool-name: DatebookHikariCPmax-lifetime: 1800000connection-timeout: 30000connection-test-query: SELECT 1mybatis: # mybatis配置mapper-locations: classpath:mapper/*.xmlconfiguration:mapUnderscoreToCamelCase: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImpl

4.4 开启包扫描

@MapperScan("com.boe.cloud.vh.screen.dao")
@EnableAsync
@SpringBootApplication
@EnableScheduling
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}

4.5 代码生成器

根据数据库表生成对应的实体,xml文件,dao文件。生成基础的增删改查代码,提高开发效率。

项目地址:https://gitee.com/Fh_1214/mybatis-generator.git

五、Redis介绍

5.1 Redis 简介

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

5.2 Redis 优点

  1. 它是基于内存存储减少io操作所带来的性能开销,读写性能高读11w/s,写8.1w/s。

  2. 提供了丰富的数据存储结构如 字符串(string), 散列(hash), 列表(list), 集合(set), 有序集合(sorted set)与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial)索引半径查询。

  3. redis底层采用单线程实现数据的IO,所以在数据算法层面并不需要考虑并发安全性问题。Redis是单线程+多路IO复用技术。多路复用是指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启动线程执行(比如使用线程池)。

  4. redis虽然是基于内存存储的但是它也支持两种持久化方式,避免因为服务器故障导致数据丢失的问题。

  5. redis一般用来实现分布式缓存,从而降低应用程序对关系型数据库检索带来的性能影响。

  6. redis应用场景:分布式锁,分布式队列,排行榜热点新闻的缓存,查找附近的人等功能。为复杂的应用提供非常方便的和成熟的解决方案。

5.3 SpringBoot整合Redis

引入Redis依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

编写配置

spring:redis: # redis配置host: 172.16.1.137port: 6379database: 0password: abc123@cto_2020ssl: falselettuce:pool:max-active: 8max-idle: 8min-idle: 0max-wait: 1000ms

六、代码案例

@RestController
@RequestMapping("/test")
public class TestController {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Autowiredprivate AccountService accountService;/*** 根据Id查询账号* 若数据存在redis则返回,不存在就查询数据库,若数据库不存在则报错,存在则写入缓存后返会数据** @return*/@GetMapping("/findByAccountId")public Result<AccountDTO> findByAccountId(Integer accountId) {String accountKey = RedisPrefix.ACCOUNT + accountId;String accountStr = stringRedisTemplate.opsForValue().get(accountKey);if (StringUtil.isNotEmpty(accountStr)) {AccountDTO accountDTO = JSON.parseObject(accountStr, AccountDTO.class);return Result.success(accountDTO);}TAccount account = accountService.findById(accountId);AssertUtil.isTrue(account != null && YNEnum.N.getCode().byteValue() == account.getIsDelete(), ResultCodes.ACCOUNT_NOT_FOUND);AccountDTO accountDTO = AccountConverter.convert2DTO(account);// 写入缓存stringRedisTemplate.opsForValue().set(accountKey, JSON.toJSONString(accountDTO), 300, TimeUnit.SECONDS);return Result.success(accountDTO);}
}
/*** 根据id查询账号** @param id* @return*/
public TAccount findById(Integer id) {if (id == null) {return null;}return tAccountDAO.selectByPrimaryKey(id);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401465.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

yolov8/yolov10 MLU370 实现推理/单多卡训练!

文章目录 前言一、平台环境配置二、基础环境配置1.代码下载2.环境安装3.模型下载4.代码修改 三.单卡推理四、单/多卡训练 前言 本章主要操作以yolov8为主&#xff0c;但是yolov10用该操作也能直接适用&#xff0c;开干&#xff01; 一、平台环境配置 镜像选择&#xff1a;v2…

Python Django 框架 01

1. 以新闻内容为主的网站-Django。CMS 查看django官方网站。查看django源码。查看中文文档。对于Django框架遵循MVC设计&#xff0c;并且有个专用名字&#xff1a;MVT。 model 只适用于关系型数据库。 建议使用谷歌浏览器。 Django环境配置 python 环境 因为Django是需要Py…

Leetcode每日刷题之面试题01.02判断是否互为字符重排(C++)

1. 题目解析 本题判断的是两个字符串&#xff0c;其中一个字符串变换顺序是否可以变化为第二个字符串&#xff0c;即重排后是否为同一字符串 2. 算法原理 这里我的思路是直接统计两字符串中字符出现的次数&#xff0c;然后直接比较即可&#xff0c;我使用了范围for以及字符ASCI…

【系统架构设计】系统性能评价

【系统架构设计】系统性能评价 性能指标对计算机对网络对操作系统对数据库管理系统对Web服务器 性能计算MIPS(百万条指令/秒)计算方法峰值计算等效指令速度 性能设计性能评估 性能指标 对计算机 时钟频率&#xff08;主频&#xff09; 指计算机处理器的时钟频率&#xff0c;…

2024 D^3CTF pwn(d3note write_flag_where D3BabyEscape pwnshell)

文章目录 d3note libc 2.37源码exp write_flag_where glibc 2.38源码改scanf利用 改write D3BabyEscape源码exp pwnshellphp堆源码exp d3note libc 2.37 源码 index越界&#xff0c;show也没有检查&#xff0c;直接打印&#xff0c;这里找到got表&#xff0c;直接开搜就行 然后…

asp.net core 调用wps实现word转pdf

安装wps https://www.wps.cn/ 创建.net core控制项目 添加com引用&#xff0c;搜索wps 准备word&#xff0c;名字叫001.docx word转pdf 编写代码 namespace WPSStu01 {internal class Program{static void Main(string[] args){Console.WriteLine("转化开始&q…

日撸Java三百行(day24:二叉树的建立)

目录 一、分析准备 二、代码实现 1.方法创建 2.数据测试 3.完整的程序代码 总结 一、分析准备 在日撸Java三百行&#xff08;day22&#xff1a;二叉树的存储&#xff09;中&#xff0c;我们学习的是如何将链表二叉树转换为顺序表二叉树进行存储&#xff0c;而今天我们要…

一套完整的NVR方案与部分NVR录像机GUI源码剖析

一、部分功能展示 1.1 通道管理部分 在NVR系统中&#xff0c;通道管理是核心功能之一。通过通道管理&#xff0c;用户可以对连接的摄像头进行配置和监控。 通道连接使能&#xff1a;用户可以选择开启或关闭特定通道的连接功能&#xff0c;以实现灵活的设备管理。 时间同步&…

Kali Linux 三种网络攻击方法总结(DDoS、CC 和 ARP 欺骗)

一、引言 在当今数字化的时代&#xff0c;网络安全成为了至关重要的议题。了解网络攻击的方法和原理不仅有助于我们增强防范意识&#xff0c;更是网络安全领域专业人员必备的知识。Kali Linux 作为一款专为网络安全专业人员和爱好者设计的操作系统&#xff0c;提供了丰富的工具…

VideoPlayer插件的用法

文章目录 1. 概念介绍2. 使用方法2.1 实现步骤2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取文件类型"相关的内容&#xff0c;本章回中将介绍如何播放视频.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 播放视频是我们常用…

Windows11下wsl闪退的解决

wsl闪退 1. 原因分析 解释&#xff1a;WSL&#xff08;Windows Subsystem for Linux&#xff09;闪退通常指的是在Windows操作系统中运行的Linux环境突然关闭。这可能是由于多种原因造成的&#xff0c;包括系统资源不足、WSL配置问题、兼容性问题或者是Linux内核的问题。&…

【Python学习-UI界面】PyQt5 小部件13-Slider 拖动条

高级布局管理器&#xff0c;允许通过拖动边界来动态改变子小部件的大小。 Splitter控件提供一个手柄&#xff0c;可以拖动以调整控件的大小 样式如下: 常用方法如下&#xff1a; 序号方法描述1addWidget将小部件添加到拆分器的布局中2indexOf返回布局中小部件的索引3insetW…

MySQL架构与数据库基础

文章目录 一、数据库概念二、数据库的简单概念三、SQL四、MySQL架构 一、数据库概念 数据库是一个以某种由组织的方式存储的数据集合。我们可以把数据库想象称为一个文件柜。此文件柜是一个存放数据的物理位置&#xff0c;不管数据是什么以及如何组织的。数据库本质也需要像文…

EMC学习笔记2——电磁兼容问题分析

分析一个电磁兼容问题一般从三方面入手&#xff0c;分别是骚扰源、敏感源、耦合路径。解决掉其中一个问题&#xff0c;就能解决大部分的电磁兼容问题。 例如&#xff1a;当骚扰源是雷电时&#xff0c;敏感源是电子线路时&#xff0c;我们需要消除的就是耦合电路。 耦合路径就是…

LLM - 微调(Fine-Tuning) Llama3 以及合并微调模型 教程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/141218047 在微调 Llama3 大模型时&#xff0c;需要注意一些事项&#xff1a; 合适的预训练模型&#xff1a;不同的预训练模型具有不同的特点和适…

Java 操作 Redis和redis持久化

一、Jedis 我们要使用 Java 来操作 Redis&#xff0c;Jedis 是 Redis 官方推荐的 java连接开发工具&#xff01; 使用Java 操作 Redis 中间件&#xff01; 1.导入对应的依赖 https://mvnrepository.com/artifact/redis.clients/jedis <dependency><groupId>redi…

Keycloak中授权的实现-转载

在Keycloak中实现授权&#xff0c;首先需要了解与授权相关的一些概念。授权&#xff0c;简单地说就是某个&#xff08;些&#xff09;用户或者某个&#xff08;些&#xff09;用户组&#xff08;Policy&#xff09;&#xff0c;是否具有对某个资源&#xff08;Resource&#xf…

CAN总线详解-理论知识部分

目录 CAN总线简介 CAN总线硬件电路 CAN电平标准 CAN收发器 ​编辑 CAN物理层特性 CAN总线帧格式 数据帧 数据帧格式 数据帧发展历史 遥控帧 错误帧 过载帧 帧间隔 位填充 波形实例 CAN总线接收方数据采样 接收方数据采样遇到的问题 位时序 硬同步 再同步 波…

Cesium.js:webGIS领域的翘楚,开源全球地理空间数据可视化框架.

说起数据可视化/数字孪生开发&#xff0c;少不了webGIS&#xff0c;聊起webGIS不得不提大名鼎鼎的Cesium.js框架。 CesiumJS是一个用于创建地理空间应用程序的开源JavaScript库。它提供了丰富的地图和地理空间数据的可视化功能&#xff0c;可以用于构建基于地理位置的3D地图、…

nvm介绍、下载、安装、配置及使用

一、背景 在工作中&#xff0c;我们可能同时在进行2个或者多个不同的项目开发&#xff0c;每个项目的需求不同&#xff0c;进而不同项目必须依赖不同版本的NodeJS运行环境&#xff0c;这种情况下&#xff0c;对于维护多个版本的node将会是一件非常麻烦的事情&#xff0c;nvm就…