Maven包
MAVEN包整理
程序测试
junit测试包
用于单元测试
可在test包下直接运行方法, 调用主程序代码测试bug等
IDEA需要下载Junit插件
<!--junit:测试包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
</dependency>
使用案例:
//加了@Test注解可以直接运行
@Test
public void testmethod(){
System.out.println("测试方法,需要在测试文件夹下使用");
}
参考文献:
数据库操作
mysql数据库驱动
mysql驱动程序使用mysql数据库必须导入此包
<!-- mysql:数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
使用案例:
大部分在database.properties配置文件中使用
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/tu_shu_guan?=useSSL=true&useUnicode=true&characterEncoding=utf-8
jdbc.username = root
jdbc.password = root
参考文献:
- 官网:MySQL :: MySQL Connectors
- 使用:IDEA用Maven连接MySQL的jdbc驱动,并操作数据库
- mysql jdbc url具体参数全解_jdbcurl配置参数
- 若使用mysql8.0以上要加时区设置
c3p0数据库连接池
操作数据库池, 连接数据库驱动主要在xml配置文件中使用连接池很多,这只是其中一个
<!-- c3p0:数据库连接池-->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
使用案例:
<!-- 关联数据库文件-->
<!-- 固定写法 专用配置,classpath:导航到资源目录-->
<context:property-placeholder location="classpath:database.properties"/>
<!-- 连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!-- c3p0连接池的私有属性 最大,小连接-->
<property name="maxPoolSize" value="30"/>
<property name="minPoolSize" value="10"/>
<!-- 关闭连接后不自动commit -->
<property name="autoCommitOnClose" value="false"/>
<!-- 获取连接超时时间 -->
<property name="checkoutTimeout" value="10000"/>
<!-- 当获取连接失败重试次数 -->
<property name="acquireRetryAttempts" value="2"/>
</bean>
<!-- 配置SqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource"/>
<!-- 绑定mybatis配置文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
参考文献:
- 官网:c3p0:JDBC DataSource(只有下载地址了,官网进不去)
- 使用:详解C3P0(数据库连接池)
- 其他常用连接池:JDBC 连接池 详解
mybatis数据库操作框架
便于编写sql语言,常用xml配置, 防止sql注入风险
<!-- mybatis:数据库操作-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
使用案例:
1.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="zhe.xin.dao.BooksMapper">
<!--对应的接口实现sql-->
<!-- tongg标签寻找,在mybatis中设置了自动生成标签 -->
<!-- 增加一本书-->
<insert id="addBook" parameterType="Books">
insert into tu_shu_guan.books (book_name, boo_kclass, book_price)
values (#{book_name}, #{boo_kclass}, #{book_price});
</insert>
</mapper>
2.对应接口实现:
//与xml绑定
public interface BooksMapper {
//增加一本书
int addBook(Books books);
}
参考文献:
mybatisSpring用Spring连接mybatis
整合mybatis到Spring中于mybatis同时出现, 缺一不可
<!-- mybatisSpring:用Spring连接mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
使用案例官网讲的很详细
参考文献:
Spring框架
SpringBoot依赖
要想使用SpringBoot框架 , 必须要继承这个包
<!-- 父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/>
</parent>
SpringBoot模块启动器
SpringBoot的启动类
必备
<!-- Spring模块启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
SpringBootWEB启动器
要使用SpringBootWEB框架 , 必须要导入这个包
这个包是整个SpringBoot的入口
<!-- web场景启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
参考文献:
SpringBootWebSocket启动器
使用socket通信
<!-- 启用websocket -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
springboot-Test单元测试
用于测试Springboot项目,
有了这个之后就不需要在用Junit了
如果都存在需要剔除依赖
<!-- springboot单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.2.2.RELEASE</version>
<scope>test</scope>
</dependency>
<!-- 剔除依赖 ,防止依赖冲突 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
参考文献:
SpringMVC框架
使用mvc功能包括: IOC , AOP
<!-- Spring:mvc框架-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
参考文献:
spring-jdbc框架
再Spring中使用jdbc就要用到这个
Spring JDBC 框架负责所有的低层细节,从开始打开连接,准备和执行 SQL 语句,处理异常,处理事务,到最后关闭连接。大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库操作中解脱出来,从而将更多的精力投入到编写业务逻辑中。
Spring框架提供了JdbcTemplate类,该类是Spring框架数据抽象层的基础这是管理所有数据库通信和异常处理的中央框架类。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
参考文献:
- 官网:spring.io/projects/spring-data-jdbc/
- 官网???:Spring JDBC Tutorial | Baeldung
- 使用:【精选】Spring引入jdbc操作数据库超详细学习笔记
配置文件解析器
如:yaml文件解析器, 配置文件
<!--yaml文件解析器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
参考文献:
- 官网: 配置元数据
Servlet操作
Servletapi, jsp界面驱动, jstl扩展
Servletapi : 提供servlet的java操作类
jsp界面驱动 : 解析jsp界面
jstl扩展 : 扩充jsp标签 , 使得jsp功能更加强大 , 需要在jsp中导入对用配置
standard:使用el表标签
<!-- Servlet:网络服务 jsp jstl 三个固定一起-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<!-- jsp:界面-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<!-- jstl-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--standard标签库-->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
使用案例:
<!--引入各标签-->
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="x" ri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
教程:
- Servlet快速入门使用(超详细)
- EL表达式的使用详解
- JSTL核心标签超详细详解
- JSP的基本使用
- JSP 标准标签库(JSTL)
- JSP、EL和JSTL
- 【精选】Jsp与Servlet(三)之EL 与 JSTL
AOP切面
AOP切面程序
实现AOP编程的核心类
<!-- aspectJ AOP:切面程序-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>
使用案例:
- 参考之前的文章:Spring - AOP切入:5,6,7,8 章节的文章
- 或者直接看:7-Spring-AOP三种代理(切入)方法 - 哲_心
方便编写工具
lombok简化开发
使用这个类,只要几个注解就可以快速实现, 构造, get, set toString方法
<!-- lombok简化pojo开发-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
使用案例:
@Data //get,set
@AllArgsConstructor //有参构造
@NoArgsConstructor //无参构造
public class Books {
private int id;
private String book_name;
private String boo_kclass;
private float book_price;
}
参考文献:
JSON处理
fastjson2处理json工具
阿里巴巴旗下 处理理json的工具,十分贴合国人可以把字符串,或对象转为json对象也可以把对象或转为字符串有了2就不用1了
<!-- fastjson2处理json-->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.42</version>
</dependency>
使用案例:
@Test
public void testFastjson() {
String json = "{\n" +
" \"js\": 1,\n" +
" \"nr\": [\n" +
" {\n" +
" \"name\": \"小妹\",\n" +
" \"wb\": \"想恋爱了\"\n" +
" }\n" +
" ]\n" +
"}";
JSONObject root = JSON.parseObject(json); //转为json对象
int js = (int) root.get("js");//取到大对象中的js值
JSONArray nr = JSON.parseArray(root.get("nr").toString()); //转为json数组
JSONObject nrroot = JSON.parseObject(nr.get(0).toString()); //取到数组第一个对象,转为json对象
String name = (String)nrroot.get("name"); //取到nr对象中的name的值
System.out.println(js + name);
//json转为对象
Object json1 = JSON.toJSON(json);
}
参考文献:
发送请求
OKhttp3请求发送
一个发送请求的框架, 比较常见
<!-- okhttp3 -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.1</version>
</dependency>
使用案例:
//获取对象
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
//设置请求类型
MediaType mediaType = MediaType.parse("text/plain");
//设置请求数据
RequestBody body = RequestBody.create(mediaType, "lx=2&fid=317809&uid=641340&pg=106&rep=0&t=1697373618&k=09c22c4a944243d4a236de93ffa5404e&up=1");
//添加请求头
Request request = new Request.Builder()
//请求url //请求方式和请求值 //请求头
.url("https://lanzoui.com/filemoreajax.php")
.method("POST", body)
.addHeader("User-Agent", "Apifox/1.0.0 (https://apifox.com)")
.addHeader("Accept", "*/*")
.addHeader("Host", "lanzoui.com")
.addHeader("Connection", "keep-alive")
.build();
//取到请求结果
Response response = client.newCall(request).execute();
String text = response.body().string()
参考文献:
unirest请求发送
一个发送请求的框架, 比较常见 ,,个人感觉操作比OKhttp3好用
<dependency>
<groupId>com.konghq</groupId>
<artifactId>unirest-java</artifactId>
<version>3.13.2</version>
</dependency>
使用案例:
@Override
public String fun(String wb) {
HttpResponse<String> response = Unirest.post("http://192.144.215.52:2003/api/ai/user/getAiContent") //请求URL
//设置请求头
.header("Content-Type", "text/plain; charset=utf-8")
.header("Accept", "*/*")
.body("{\"messages\":"+wb+",\"userId\":\"1037870\"}")
.asString();
//取到返回数据
wb = response.getBody();
return wb;
}
参考文献:
网页解析
jsoup网页解析
可以解析网页为Elements, 拥有js语言的操作DOM的能力也可以解析xml, json主要用于html和xml
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.16.1</version>
</dependency>
使用案例:
@Override
public String getHome() {
//解析HTML为Document对象
Document parse = Jsoup.parse(webs);
//用标签取到Element对象
Element pageBeginHtml = parse.getElementById("page_begin_html");
if(pageBeginHtml == null){
return "";
} //获取这个对象的数据值
return pageBeginHtml.data();
}
参考文献:
- 官网:jsoup: Java HTML
- 官网文档:节点 (jsoup Java HTML 解析器 1.16.2 API)
- 使用:jsoup使用指南 - 掘金 (juejin.cn)
- jsoup - 教程 - 菜鸟教程 (cainiaoya.com)
第三方专用包
OpenAI ChatGPT调用包
网上以为大佬研发的,,对接chatgpt官方API可以查key , 流式输出 , 连续对话 , 等操作,比较全面支持多个key,没有了,就换下一个
<!--gpt依赖-->
<dependency>
<groupId>com.unfbx</groupId>
<artifactId>chatgpt-java</artifactId>
<version>1.0.15</version>
</dependency>
使用案例:
//访问api
//传入消息列表,和key数组,可以使用多个key
private static List<ChatChoice> duq(String[] apiKey, List<Message> message) {
OpenAiClient openAiClient = OpenAiClient.builder()
.apiKey(Arrays.asList(apiKey))
.build();
ChatCompletion chatCompletion = ChatCompletion.builder().messages(message).build();
ChatCompletionResponse chatCompletionResponse = openAiClient.chatCompletion(chatCompletion);
List<ChatChoice> choices = chatCompletionResponse.getChoices();
return choices;
}
参考文献:
模板
模板
介绍
模板仅复制不得删除
使用案例:
示例代码
参考文献:
- 官网:
- 使用:
-------------- 插 件 -------------
解决Maven静态资源过滤问题
Maven静态资源 , 可能会导致静态文件无法打包,,这样完美解决
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
参考文献:
Tomcat7插件
Maven静态资源 , 可能会导致静态文件无法打包,,这样完美解决
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration><!-- 通过maven tomcat7:run运行项目时,访问项目的端口号 -->
<port>10001</port>
<!--设置编码-->
<uriEncoding>UTF-8</uriEncoding><!-- 项目访问路径 本例:localhost:9090, 如果配置的aa, 则访问路径为localhost:9090/aa-->
<path>/</path>
<server>tomcat7</server>
</configuration>
</plugin>
</plugins>
参考文献:
java版本设置
java版本控制, 若过高或过低引起的问题可能与这里有关
<plugins>
<plugin>
<!--配置jdk版本-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
参考文献:
SpringBoot打包插件
用于Springboot项目打包
<plugins>
<!-- 打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>

浙公网安备 33010602011771号