spring 需要注入的依赖类型(通过maven)

spring框架需要注入的依赖除了自身需要的还有很多,关键是看项目需要。以引入spring依赖为例进行说明该如何进行依赖引入,首先我们要知道spring包含哪些部分才能引入对应的依赖,这也是我们引入依赖的原则即根据需求。spring框架结构图如下图所示:
在这里插入图片描述
由上图我们可以看出spring包括数据访问、web、IOC容器相关、AOP等模块,我们以IOC容器为例进行依赖引入示例:IOC容器相关依赖包括bean、core、context、expression;

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- 
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- 
<dependency>
	 <groupId>org.springframework</groupId>
	<artifactId>spring-expression</artifactId>
	<version>${spring.version}</version>
</dependency>

spring结构图展示的是我们的需求,我们只需要打开maven仓库直接找到依赖然后复制到pom.xml文件中即可,因为依赖的引入最关键的是看你的需求。
注意:

  1. 我们在引入依赖时尽量不要版本差别太大造成不兼容问题。
  2. 很多依赖都是相互引用的,比如bean的依赖很多包中都有,因此有些依赖不需要重复引用,具体方法可通过查看依赖包进行查看,比如很多包都包含bean依赖,有时就会造成依赖冲突(少数情况),我们可用标签进行排除。
  3. 当spring需要集成如mybatis、swagger、netty等等资源时我们只需要找到对应的资源部引入即可。

依赖示例:

<?xml version="1.0" encoding="UTF-8"?>


4.0.0
com.example
spring5_test
0.0.1-SNAPSHOT
spring5_test
Demo project for Spring Boot

<properties>
    <spring.version>5.0.3.RELEASE</spring.version>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    <commonslang>3.12.0</commonslang>
    <mysqlconnect>5.1.47</mysqlconnect>
    <spring>5.3.6</spring>
    <mybatis>3.4.5</mybatis>
    <druid>1.1.9</druid>
    <java.version>1.8</java.version>
    <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
    <swagger2>2.9.2</swagger2>
    <swaggerui>2.9.2</swaggerui>
    <netty>4.1.49.Final</netty>
    <commonsio>2.6</commonsio>
    <commonslang>2.6</commonslang>
    <lombok>1.16.22</lombok>
    <sonar>5.1</sonar>
    <!--        数据源连接-->
    <!--  <mysqlconnect>5.1.6</mysqlconnect>-->
    <mysqlconnect>8.0.15</mysqlconnect>
    <mybatis>2.0.1</mybatis>
    <druid>1.1.10</druid>
    <!--        json-->
    <fastjson>1.2.29</fastjson>
    <gson>2.6</gson>
    <!-- protobuf-->
    <protobuf.version>3.6.1</protobuf.version>
</properties>

<dependencies>
    <!--   spring IOC容器相关依赖     -->
    <!--   包含 aop、beans、context、core、expression、web    -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring}</version>
    </dependency>
    <!--    spring 数据访问层 ,连接驱动、连接池(c3p0也可)、mybatis(选用)   -->
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.10</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>5.1.4.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jms -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jms</artifactId>
        <version>5.2.2.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.1</version>
    </dependency>
    <!--   spring web     -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.2.1.RELEASE</version>
    </dependency>
    <!--websocket连接需要使用到的包-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-websocket -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-websocket</artifactId>
        <version>5.2.1.RELEASE</version>
    </dependency>
    <!--   spring aop  已经在最上面中包含了,可点开依赖包查看-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
    <!--  spring aspect  -->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
    <!--spring  test-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.1.20.RELEASE</version>
        <scope>test</scope>
    </dependency>
    <!--  lombok-->
    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.10</version>
        <scope>provided</scope>
    </dependency>
    <!--   扩展(根据需求选用)     -->
    <!--    protocol    -->
    <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${protobuf.version}</version>
    </dependency>
    <!-- json -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>${fastjson}</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson}</version>
    </dependency>
    <!--swagger2-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${swagger2}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${swaggerui}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>${netty}</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commonsio}</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>${commonslang}</version>
    </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>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
    </dependency>
    <dependency>
        <groupId>com.github.jsqlparser</groupId>
        <artifactId>jsqlparser</artifactId>
        <version>3.2</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.github.jsqlparser</groupId>
        <artifactId>jsqlparser</artifactId>
        <version>3.2</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.3.7.RELEASE</version>
            <configuration>
                <mainClass>com.example.spring5_test.Spring5TestApplication</mainClass>
            </configuration>
            <executions>
                <execution>
                    <id>repackage</id>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Maven来使用Spring框架的过程中,需要进行以下步骤: 1. 首先,在pom.xml文件中添加Spring框架依赖。通过在dependencies标签中添加以下代码来实现: ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>VERSION</version> </dependency> ``` 其中,VERSION是指您要使用的Spring框架的版本号。 2. 接下来,在Maven的项目结构中创建一个配置文件(通常是在src/main/resources目录下)来配置Spring框架。这个文件可以是一个XML文件,也可以是一个Java配置类。具体的配置方式取决于您选择的Spring版本和个人偏好。 3. 在配置文件中,您可以定义要使用的Spring组件,例如控制器、服务、存储库等。您还可以配置依赖注入、AOP(面向切面编程)、数据源等其他方面。 4. 在Maven项目的主类中,您可以使用Java配置类的方式,或者导入已经定义好的配置文件来加载Spring框架。加载完成后,您就可以使用Spring框架提供的各种功能了。 使用Maven来管理依赖可以简化项目的构建和部署过程。您只需要在pom.xml文件中定义所需的依赖,并且Maven会负责下载和管理这些依赖。这样,当您部署项目到其他环境时,只需要确保Maven和相关依赖可用,就可以正常运行Spring框架了。 总之,通过Maven使用Spring框架是一种常用且便捷的方式,它提供了方便的依赖管理和项目构建过程,帮助开发人员更好地使用和维护Spring框架

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值