IDEA 使用Maven从零构建Spring基础项目

IDEA和Spring的兼容器是相当之好的,如果使用最新的Spring构建技术大可以直接使用Spring Initializer构建Maven Spring项目。

但是作为一个菜鸡,又只认识列表里的几个包,我要实现个依赖注入应该在Sprign Initializer的组件列表里选啥?

但是Spring Initializer生成的项目已经是SpringBoot项目了,实习公司使用的技术是Spring,并不是SpringBoot,这就很蓝瘦了。

所以需要掌握一下怎么从零构建一个Spring项目,添加项目依赖。

这篇文章的操作不讲原理,对应的原理在另一篇文章【Spring实战】装配Bean讲的很详细。


  1. 创建一个空Maven项目

新建一个项目,在左边菜单栏选择Maven

IDEA 使用Maven从零构建Spring基础项目_第1张图片
创建Maven项目

后来的很简单就不啰嗦了。artifact就是项目名,groupId我这里写的是soundsystem(也就是包名)。

  1. 配置pom.xml

创建完项目后就能看到一个pom.xm文件,最开始长这样:



    4.0.0

    soundsystem\
    LoadBean
    1.0-SNAPSHOT


问题来了,这个问题真是让我懵逼良久,我写个Spring的项目需要在依赖上啥呢?学Spring它会告诉你基础包有一大堆,你根据需要把包放到 lib文件夹里就好了。但是我实现个Spring最简单的提供依赖注入什么依赖呢?找了找也不知道最小依赖是哪个。Spring-Core包尝试了下好像也不对。

假设我要在src/main/java/soundsystem/下实现创建一个接口和一个实现类:

package soundsystem;

public interface CompactDisc {
  void play();
}
package soundsystem;
import org.springframework.stereotype.Component;

@Component
public class SgtPeppers implements CompactDisc {

  private String title = "Sgt. Pepper's Lonely Hearts Club Band";  
  private String artist = "The Beatles";
  
  public void play() {
    System.out.println("Playing " + title + " by " + artist);
  }
  
}

这个org.springframework.steroetype是啥包?

查了查试了几下,发现实现依赖注入功能的基础包在一个Spring Context包里。

修改一下pom.xml文件:



    4.0.0

    soundsystem\
    LoadBean
    1.0-SNAPSHOT

    
        
            org.springframework
            spring-context
            4.3.12.RELEASE
        
    


然后就能正常导入包了。

组件默认是不启用的,所以需要通过JavaConfig或者XML启用组件扫描。

这边使用的是XML来启用组件扫描,在 src/main/resources/META-INFO/spring/下创建一个soundsystem.xml:




    

这样组件扫描就启用了。

  1. 编写测试代码。

创建一个简单的JUnit测试,它会创建Spring上下文,并判断CompactDisc是否成功创建出来:

package soundsystem;

import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:META-INFO/spring/soundsystem.xml")
public class CDPlayerTest {
    @Autowired
    private CompactDisc cd;

    @Test
    public void cdShouldNotBeNull(){
        assertNotNull(cd);
    }
}

import包的时候发现没有这些测试依赖包,继续找包,现在需要再在pom.xml文件里添加两个依赖:

        
            junit
            junit
            4.12
            test
        
        
            org.springframework
            spring-test
            4.3.12.RELEASE
            test
        

运行测试代码,运行成功:

IDEA 使用Maven从零构建Spring基础项目_第2张图片
运行结果

我成为了一个可以从零开始用maven写DEMO的小垃圾。

你可能感兴趣的:(IDEA 使用Maven从零构建Spring基础项目)