目前,做Java开发的很多人都在使用IDEA了,而有些人也选择用Eclipse,我这里介绍一下IDEA一步步创建Maven项目的步骤,并创建一个Spring的入门程序(Java项目,非Web项目),讲解比较少。。。

  博客内容:

  1. 使用创建Maven项目
  2. 添加Spring核心包
  3. 编写Spring入门程序并运行(Bean装配和Bean注入)

 

  1. 创建Maven项目

  打开IDEA软件,如下图所示:

Java idea maven grpc生成 idea使用maven创建spring_xml

  单击Create New Priject(创建新项目),然后选中Maven,如下图所示:

Java idea maven grpc生成 idea使用maven创建spring_jar_02

  单击“下一步”按钮,进入填写项目GroupId和ArtifactId,如下图所示:

Java idea maven grpc生成 idea使用maven创建spring_spring_03

  填写完项目GroupId和ArtifactId后,单击“Next”,出现确认项目信息的页面,如下图所示:

Java idea maven grpc生成 idea使用maven创建spring_spring_04

  最后单击“Finish”按钮,完成Maven项目的创建。如下图的所示项目文件结构:

Java idea maven grpc生成 idea使用maven创建spring_xml_05

  2. 添加Spring核心包

  要使用Spring框架,需要添加Spring的spring-core-x.x.x.RELASE.jar、spring-beans-x.x.x.RELASE.jar、spring-context-x.x.x.RELASE.jar、spring-expression-x.x.x.RELASE.jar和Spring的第三方依赖包commons-logging-x.x.jar。其中x.x.x代表版本号。

  • spring-core-x.x.x.RELASE.jar:包含Spring框架基本的核心工具类,Spring其他组件都要用到这个包里面的类,是其他核心类的基本核心。
  • spring-beans-x.x.x.RELASE.jar:包含访问配置文件、创建和管理Bean以及进行控制反转(IoC)或者依赖注入(DI)操作相关的所有类。
  • spring-context-x.x.x.RELASE.jar:Spring提供了在基础IoC功能上的扩展服务,包括邮件服务、任务调度等。
  • spring-expression-x.x.x.RELASE.jar:定义了Spring表达书语言。
  • commons-logging-x.x.jar:Spring用到的第三方依赖包。

  Maven管理的Java项目导入第三方jar包只需要在Maven仓库里面搜索就可以了。Maven仓库地址:https://mvnrepository.com。在maven仓库上面搜索上面用到的五个jar包,然后添加<denpendency></denpendency>标签到上面创建Maven项目生成的pom.xml下的"<dependencies></dependencies>",没有"<dependencies></dependencies>"的新建。如下的pom.xml文件,我选择了spring-5.1.9版本。

>>pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>edu.gzmtu</groupId>
    <artifactId>chapter1</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>

</project>

  至此,添加Spring核心包步骤完成。

  3. 编写Spring入门程序并运行

  3.1 Bean装配

  在项目结构目录下的src/main/java下编写UserDao接口和UserDaoImpl实现类。

>>UserDao.java

/**
 * @author super lollipop
 * @date 2019/10/19
 */
public interface UserDao {
    public void saySomething();
}

>>UserDaoImpl.java

/**
 * @author super lollipop
 * @date 2019/10/19
 */
public class UserDapImpl implements UserDao {
    public void saySomething() {
        System.out.println("UserDapImpl.saySomething");
    }
}

  然后编写Spring的xml配置文件,进行UserDaoImpl这个Bean装配,文件命名随意,这里为applicationContext.xml,存放在src/main/resources下。

>>applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="userDao" class="UserDapImpl"></bean>
</beans>

  然后可以编写一个单元测试,测试spring的转配文件是否可以成功装配。在src/test/java下新建JUnitTest.java类,编写测试代码。需要添加JUnitTest的jar包到pom.xml文件,添加后的文件为

>>pom.xml文件

<dependencies>
      ......
     <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
     </dependency>
      ......
 </dependencies>

>>JUnitTest.java文件

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author super lollipop
 * @date 2019/10/19
 */
public class JUnitTest {
    @Test
    public void saySomethingTest(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDao userDao = applicationContext.getBean("userDao",UserDao.class);
        userDao.saySomething();
    }
}

  最后在IDEA内运行单元测试。运行成功,bean装配成功,如下图所示:

Java idea maven grpc生成 idea使用maven创建spring_jar_06

  3.2 Bean注入

  Bean注入Spring特性的Dependency Injection功能,可以在一个bean中注入另一个装配好的bean。在项目结构目录下的src/main/java下编写UserService类,注入上面创建好的UserDao bean。

>>UserService.java文件

/**
 * @author super lollipop
 * @date 2019/10/19
 * 用来测试依赖注入的UserService类
 */
public class UserService {

    /*声明userDao属性*/
    private UserDao userDao;
    /*添加userDao属性的setter方法,用于实现依赖注入*/
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    public void saySomething(){
        this.userDao.saySomething(); //测试userDao是否注入
        System.out.println("UserService saySomething");
    }
}

  然后配置Spring的配置文件applicationContext.xml,装配UserService并配置userDao这个属性bean

>>applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--装配userDao Bean-->
    <bean id="userDao" class="UserDapImpl"></bean>
    <!--装配userService Bean,带有userDao属性-->
    <bean id="userService" class="UserService">
        <property name="userDao" ref="userDao"></property>
    </bean>
</beans>

  然后编写测试单元,测试UserService的saySomething方法就可以知道userDao是否成功注入了。

>>测试单元代码

@Test
    public void dependencyInjectionTest(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService = applicationContext.getBean("userService",UserService.class);
        userService.saySomething();
    }

  最后编译运行测试单元,运行结果显示bean注入成功,如下图所示:

Java idea maven grpc生成 idea使用maven创建spring_xml_07

 

  至此,IDEA创建的Spring入门程序完成,所有的代码都放到github上面:https://github.com/quanbisen/chapter1