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("测试方法,需要在测试文件夹下使用");
}

 参考文献:

  1. 官网:JUnit 5
  2. 使用:JUnit5单元测试框架的使用教程与简单实例

 



 

数据库操作 

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

参考文献:

  1. 官网:MySQL :: MySQL Connectors
  2. 使用:IDEA用Maven连接MySQL的jdbc驱动,并操作数据库
  3. mysql jdbc url具体参数全解_jdbcurl配置参数
  4. 若使用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>

参考文献:

  1. 官网:c3p0:JDBC DataSource(只有下载地址了,官网进不去)
  2. 使用:详解C3P0(数据库连接池)
  3. 其他常用连接池: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);
}

参考文献:

  1. 官网:mybatis – MyBatis 3
  2. 使用:MyBatis教程完整版--超级详细

 



 

mybatisSpring用Spring连接mybatis

整合mybatis到Spring中
于mybatis同时出现, 缺一不可
<!-- mybatisSpring:用Spring连接mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>

使用案例官网讲的很详细

参考文献:

  1. 官网:mybatis – MyBatis 3
  2. 知乎文章介绍:Spring整合Mybatis(MyBatis-Spring)

 

 



 

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>

 参考文献:

  1. 走进Spring Boot:spring-boot-starter-web依赖的实际应用分析

 



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>

 参考文献:

  1. Spring Boot Test单元测试——Junit4、Junit5区别

 



 

SpringMVC框架

使用mvc功能
包括: IOC , AOP
<!-- Spring:mvc框架-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>

 参考文献:

  1. 官网:Spring Framework
  2. 使用:【精选】黑马程序员--SpringMVC详细教程_springmvc教程_JAVA成神的博客-CSDN博客

 



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>

参考文献:

  1. 官网:spring.io/projects/spring-data-jdbc/
  2. 官网???:Spring JDBC Tutorial | Baeldung
  3. 使用:【精选】Spring引入jdbc操作数据库超详细学习笔记


配置文件解析器

如:yaml文件解析器, 配置文件
<!--yaml文件解析器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

参考文献:

  1. 官网: 配置元数据


 

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" %>

 教程:

  1. Servlet快速入门使用(超详细)
  2. EL表达式的使用详解
  3. JSTL核心标签超详细详解
  4. JSP的基本使用
  5. JSP 标准标签库(JSTL)
  6.  
  7. JSP、EL和JSTL
  8. 【精选】Jsp与Servlet(三)之EL 与 JSTL

 



 

AOP切面

AOP切面程序

实现AOP编程的核心类
<!-- aspectJ AOP:切面程序-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>

使用案例:

  1. 参考之前的文章:Spring - AOP切入:5,6,7,8 章节的文章
  2. 或者直接看: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;
}

参考文献:

  1. lombok常用注解大全-CSDN博客

 



 

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()

 参考文献:

  1. 官网:Overview - OkHttp
  2. 使用:基本使用——OkHttp3详细使用教程_okhttp3官网

 

 



 

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;
}

 参考文献:

  1. 官网:DUnirest in JavaUnirest in Java
  2. 使用:【精选】Unirest-Java 官方使用文档(中文版)Unirest-Java 官方使用文档(中文版)

 

 



 

网页解析

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();
    }

 参考文献:

  1. 官网:jsoup: Java HTML
  2. 官网文档:节点 (jsoup Java HTML 解析器 1.16.2 API)
  3. 使用:jsoup使用指南 - 掘金 (juejin.cn)
  4. 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;
    }

 参考文献:

  1. 官网:ChatGPT流式输出 | Chatgpt-Java

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

模板

模板

介绍
模板仅复制不得删除

使用案例:

示例代码

 参考文献:

  1. 官网:
  2. 使用:

 

 



 

 
 

--------------  插 件 -------------

解决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>

 参考文献:

  1. 使用:MAVEN中filtering的作用是什么

 



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>

 参考文献:

  1. 使用:maven插件 tomcat7-maven-plugin

 



 

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>

 参考文献:

  1. 使用:Maven中配置maven-compiler-plugin 插件和jdk 17版本

 



 

SpringBoot打包插件

用于Springboot项目打包
    <plugins>
        <!-- 打包插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>

 



 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2023-11-06 14:00  哲_心  阅读(27)  评论(0)    收藏  举报