对于Spring项目入门案例,我们得先分析思路然后再代码实现

1. Spring项目入门案例思路分析

(1)Spring是使用容器来管理bean对象的,那么管什么?

  • 主要管理项目中所使用到的类对象,比如(ServiceDao)

(2)如何将被管理的对象告知IOC容器?

  • 使用配置文件

(3)被管理的对象交给IOC容器,要想从容器中获取对象,就先得思考如何获取到IOC容器?

  • Spring框架提供相应的接口

(4)IOC容器得到后,如何从容器中获取bean

  • 调用Spring框架提供对应接口中的方法

(5)使用Spring导入哪些坐标?

  • 用别人的东西,就需要在pom.xml添加对应的依赖

2. Spring项目入门案例代码实现

需求分析:将UserServiceImplUserDaoImpl交给Spring管理,并从容器中获取对应的bean对象进行方法调用。

1.创建Mavenjava项目
2.pom.xml添加Spring的依赖jar包
3.创建UserService,UserServiceImplUserDaoUserDaoImpl四个类
4.resources下添加spring配置文件,并完成bean的配置
5.使用Spring提供的接口完成IOC容器的创建
6.从容器中获取对象进行方法调用

步骤1:创建Maven项目

spring data 项目 spring项目实例_java

步骤2:添加Spring的依赖jar

pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.15.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

步骤3:添加案例中需要的类

创建UserService,UserServiceImplUserDaoUserDaoImpl四个类

public interface UserService {
    public void save();
}
public class UserServiceImpl implements UserService {
    
    public UserDao userDao = new UserDaoImpl();
    
    public void save() {
        System.out.println("User Service save ....");
        userDao.save();
    }
}
public interface UserDao {
    public void save();
}
public class UserDaoImpl implements UserDao {
    public void save() {
        System.out.println("User Dao save .....");
    }
}

spring data 项目 spring项目实例_spring data 项目_02

步骤4:添加spring配置文件

resources下添加spring配置文件applicationContext.xml,并完成bean的配置:

spring data 项目 spring项目实例_xml_03


spring data 项目 spring项目实例_spring data 项目_04

步骤5:在配置文件中完成bean的配置

<?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标签标示配置bean-->
    <!--id属性标示给bean起名字-->
    <!--class属性表示给bean定义类型-->
    <bean id="UserDao" class="com.dcxuexi.dao.impl.UserDaoImpl" />
    <bean id="UserService" class="com.dcxuexi.service.impl.UserServiceImpl" />
</beans>

spring data 项目 spring项目实例_junit_05


注意事项:bean定义时id属性在同一个上下文中(配置文件)不能重复

步骤6:获取IOC容器

使用Spring提供的接口完成IOC容器的创建,创建SpringApp类,编写main方法

public class SpringApp {
    public static void main(String[] args) {
        //获取IOC容器
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    }
}

spring data 项目 spring项目实例_spring data 项目_06

步骤7:从容器中获取对象进行方法调用

public class SpringApp {
    public static void main(String[] args) {
        //获取IOC容器
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //UserDao userDao = (UserDao) context.getBean("UserDao");
        //userDao.save();
        UserService userService = (UserService) context.getBean("UserService");
        userService.save();
    }
}

步骤8:运行程序

测试结果为:

spring data 项目 spring项目实例_java_07


SpringIOC入门案例已经完成,但是在UserServiceImpl的类中依然存在UserDaoImpl对象的new操作,它们之间的耦合度还是比较高,这块该如何解决,就需要用到用到的DI:依赖注入