各种框架依赖或jar包的汇总及其作用(待补充)------后端

Posted halulu.me

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各种框架依赖或jar包的汇总及其作用(待补充)------后端相关的知识,希望对你有一定的参考价值。

后端

1、Spring家族

(1)SpringMVC

作用: SpringMVC框架是web层框架,主要是简化web层(表现层)开发

    <!--springmvc依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.1.8.RELEASE</version>
    </dependency>

(2)SpringIOC

IOC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。原本由开发者自己管理对象的权利,现在将这个控制权利交给IOC容器进行创建对象,封装数据,和管理对象之间的依赖,这就是控制反转。
IOC主要应用于业务层。

<!--spring框架-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.1.8.RELEASE</version>
</dependency>

SpringMVC中的jar包已经包含spring-context

(3)SpringAOP

AOP (Aspect Oriented Programming) 即面向切面编程

作用: 在不修改源码的情况下,可以对目标对象的方法进行增强

<!--aop: spring整合第三方的面向切面编程组件-->
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.7</version>
</dependency>

(4)CGLIB

CGLIB普通类动态代理,生成继承类。

maven

 <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.1.8.RELEASE</version>
</dependency>

在这里插入图片描述

(5)JDBCTemplate

JdbcTemplate是Spring提供的一个模板类,它是对jdbc的封装。用于支持持久层的操作

        <!--mysql驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>

        <!--spring-jdbc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.1.8.RELEASE</version>
        </dependency>

        <!--druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
    </dependencies>

(6)fileUpload(SpringMVC文件上传)

springMVC文件上传,就是用到了Apache的文件fileUpload上传组件实现。简化了上传文件的过程。

<!--添加Apache文件上传支持包-->
<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.1</version>
</dependency>

(7)SpringMVCjosn数据的自动转换

@Requestbosdy和@Responsebody,需要导入jackson

<!--添加jackson支持包: springMVC框架操作json数据时调用的技术-->
<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
</dependency>

(8)Spring整合junit 包

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version> <!--spring框架对junit有要求,junit必须使用4.12及以上版本-->
    <scope>test</scope>
</dependency>
<!--
        spring整合junit包:spring-test
          注意:使用这个整个包,要求依赖的junit的包必须是4.12及版本以上
        -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.1.8.RELEASE</version>
</dependency>

(9)spring整合redis

解决当String类型的值是对象时候无法储存的问题

maven

  <!-- ================  spring   整合  Redis================== -->
        <!-- 1、java连接Redis的jar包,也就是使用jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.3</version>
        </dependency>

        <!-- 2、spring整合Redis的jar包,注意版本的对应关系 -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>2.1.6.RELEASE</version>
        </dependency>

        <!--jackson-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.9</version>
        </dependency>
        <!-- 日志记录 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.21</version>
        </dependency>

2、Tomcat插件

作用: 开启tomcat服务器

   <!--插件配置-->
  <build>
    <plugins>
      <!--tomcat7的插件-->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8080</port>
          <path>/</path>
          <uriEncoding>UTF-8</uriEncoding>
          <server>tomcat7</server>
        </configuration>
      </plugin>
    </plugins>
  </build>

3、Servlet

作用: 在于交互式地浏览和修改数据,生成动态Web内容。


<!--版本3之后才能使用注解servlet-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

4、Beanutils

封装实体类

maven

<!-- commons-beanutils -->
<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.3</version>
</dependency>

5、jackson

javascript Object Notation js对象标记
是一种轻量级的数据交换格式,通过json可以实现前后端传输数据

jackson主要用于json数据与java对象的转换

在这里插入图片描述

<!--添加jackson支持包: springMVC框架操作json数据时调用的技术-->
<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
</dependency>

6、Junit

作用: 测试代码。
注意: spring框架对junit有要求,junit必须使用4.12及以上版本

        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version> <!--spring框架对junit有要求,junit必须使用4.12及以上版本-->
            <scope>test</scope>
        </dependency>

7、Mybatis

8、commons-io

作用: 简化文件流的传输

IOUtils.copy(inputStream,response.getOutputStream());
<!--apache的commons-io: 文件下载操作流使用-->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

9、log4j日志包

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.4</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>

10、Jedis

简易版操作redis的java客户端

jar包

在这里插入图片描述

maven

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.9.0</version>
</dependency>

11、Mysql

mysql连接驱动包,注意版本5和版本8的配置文件有所不同

5.xx版本

  <!--mysql驱动包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/springdb?characterEncoding=utf8
jdbc.username = root
jdbc.password = root
jdbc.initialSize = 3
jdbc.maxActive = 50
jdbc.minIdle = 3
jdbc.maxWait = 6000

8.xx版本之后

    <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
   </dependency>
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/springdb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=UTF8
jdbc.username=root
jdbc.password=root

其中Timezone这个参数必加,这是个时区设置,也能理解,这样设置最起码数据库取时间能取到北京时间了

12、lombok

由于lombok是在.class文件的时候使用的,所以idea需要装插件lombok
1、 @Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
2、@NoArgsConstructor无参的构造器
3、@AllArgsConstructor全参的构造器

maven

 <dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.16.18</version>
	<scope>provided</scope>
</dependency>

13、commons-lang3

随机生成字符串。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.5</version>
</dependency>
  //1. 调用工具类随机生成4个数字
   String authCode = RandomStringUtils.randomNumeric(4);

14、阿里云短信包

发送短信。

maven

        <!-- 阿里云短信包 -->
<dependency>
     <groupId>com.aliyun</groupId>
     <artifactId>aliyun-java-sdk-core</artifactId>
     <version>4.5.3</version>
</dependency>
<dependency>
     <groupId>com.aliyun</groupId>
     <artifactId>aliyun-java-sdk-sms</artifactId>
     <version>3.0.0-rc1</version>
</dependency>

工具类

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.Map;

/**
 * 发送短信息的工具类
 */
public class SmsUtils {

    //这里要换成在阿里云申请的:accessKeyId和secret
    private static String accessKeyId = "换成你的accessKeyId";
    private static String secret = "换成你的secret";

    /**
     * 发送短信的方法
     * @param phoneNumbers 11位电话号码,格式:15900000000
     * @param signName 签名名称
     * @param templateCode 模板CODE
     * @param authCode 要发的验证码
     * @return 返回的信息字符串
     */
    public static String send(String phoneNumbers, String signName, String templateCode, String authCode) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, secret);
        IAcsClient client = new DefaultAcsClient(profile);

        CommonRequest request = new CommonRequest();
        request.setSysMethod(MethodType.POST);
        request.setSysDomain("dysmsapi.aliyuncs.com");
        request.setSysVersion("2017-05-25");
        request.setSysAction("SendSms");
        request.putQueryParameter("RegionId"idea打包jar,运行错误: 找不到或无法加载主类

IntelliJ IDEA各种引入jar包的方式及其关系

Linux常用命令汇总(未完,待补充)

Java使用POM一JAR包的形式管理JavaScript文件-WebJars

如何在IntelliJ IDEA中检索maven依赖jar包的源码

Gradle 查看包的依赖关系