我的第一个Spring

1.配置环境

配置pom.xml,导入spring依赖包

<?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>org.example</groupId>
    <artifactId>Spring-study</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    
    
    <modules>
        <module>spring-01-ioc1</module>
        <module>spring-02-hellospring</module>
    </modules>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.0.RELEASE</version>
        </dependency>
    </dependencies>

</project>

在resources下创建beans.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">

</beans

2.代码

1.创建com.xxx.dao包

UserDao接口

package com.xxx.dao;

public interface UserDao {
    void getUser();
}

UserDaoImpl实现类

package com.xxx.dao;

public class UserDaoImpl implements UserDao{
    public void getUser() {
        System.out.println("默认获取用户的数据");
    }
}

UserDaoMysqlImpl实现类

package com.xxx.dao;

public class UserDaoMysqlImpl implements UserDao{
    public void getUser() {
        System.out.println("mysql获取用户数据!");
    }
}

UserDaoOracleImpl实现类

package com.xxx.dao;

public class UserDaoOracleImpl implements UserDao{
    public void getUser() {
        System.out.println("Oracle获取用户数据");
    }
}

2.创建com.xxx.service包

UserService接口

package com.xxx.service;

public interface UserService {
    void getUser();
}

UserServiceImpl实现类

package com.xxx.service;
import com.xxx.dao.UserDao;

public class UserServiceImpl implements UserService{

    private UserDao userDao;

    //利用set进行动态实现值的注入
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void getUser() {
        userDao.getUser();
    }
}

3.在test.java下创建测试类

MyTest测试类

import com.xxx.service.UserServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    public static void main(String[] args) {
      //获取ApplicationContext;
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

        UserServiceImpl userServiceImpl = (UserServiceImpl) context.getBean("UserServiceImpl");

        userServiceImpl.getUser();

    }

}

整体结构

我的第一个Spring

3.运行结果

在beans.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="mysqlImpl" class="com.xxx.dao.UserDaoMysqlImpl"/>
    <bean id="oracleImpl" class="com.xxx.dao.UserDaoMysqlImpl"/>
    <bean id="userImpl" class="com.xxx.dao.UserDaoImpl"/>

    <bean id="UserServiceImpl" class="com.xxx.service.UserServiceImpl">
        <!--ref:引用spring容器中创建好的对象-->
        <property name="userDao" ref="userImpl"/>
    </bean>

</beans

在MyTest类中运行
我的第一个Spring

想要查询其他类,只需要修改beans.xml里面ref的值

我的第一个Spring

上一篇:揭秘微信红包:架构、抢红包算法、高并发和降级方案


下一篇:2021-04-05