【JavaEE案例】初始Spring框架

【案例介绍】

(1)Spring的入门程序:要求在控制台打印“张三:欢迎来到Spring”。

(2)依赖注入的应用:以属性setter方法注入为例,实现一个简单的登录验证。

【案例实现】

  • 创建项目

  • 引入相关依赖:在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>com.itheima</groupId>
    <artifactId>StartSpring</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.16</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

</project>

1.1 在src/main/java目录下创建com.itheima包,并在该包下创建名称为HelloSpring.java的类。

HelloSpring类中定义userName属性和show()方法。

package com.itheima;

public class HelloSpring {
    private String userName;

    public void setUserName(String userName){
        this.userName=userName;
    }

    public void show(){
        System.out.println(userName+":欢迎来到Spring");
    }
}

1.2 在src/main/resources目录下创建,新建applicationContext.xml文件作为HelloSpring类的配置文件,并在applicationContext.xml配置文件中创建id为helloSpring的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">
    <!--将指定类配置给Spring,让Spring创建HelloSpring对象的实例-->
    <bean id="helloSpring" class="com.itheima.HelloSpring">
        <!--为userName属性赋值-->
        <property name="userName" value="张三"></property>
    </bean>
</beans>

1.3 编写测试类TestHelloSpring.java

ackage com.itheima;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestHelloSpring {
    public static void main(String[] args){
        //初始化spring容器,加载applicationContext.xml配置
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过容器获取配置中helloSpring实例
        HelloSpring helloSpring= (HelloSpring)applicationContext.getBean("helloSpring");
        helloSpring.show();//调用方法
    }
}

2.1 编写DAO层

在com.itheima包下新建dao包,在dao包下创建接口UserDao,在UserDao接口中添加login()方法,用于实现登录功能。

package com.itheima.dao;

public interface UserDao {
    //login()方法,用于实现登录功能
    public boolean login(String name,String password);
}

在com.itheima.dao包下新建impl包 ,在impl包下创建UserDao接口的实现类UerDaoImpl,在UerDaoImpl类中实现login()方法。

package com.itheima.dao.impl;
import com.itheima.dao.UserDao;

public class UserDaoImpl implements UserDao{
    @Override
    public boolean login(String name,String password){
        if(name.equals("张三")&&password.equals("123")){
            return true;
        }
        return false;
    }
}

2.2 编写Service层

在com.itheima包下新建service包,在service包下创建接口UserService作为业务逻辑层接口,在UserService接口中添加login()方法。

package com.itheima.service;

public interface UserService {
    public boolean login(String name,String password);
}

在com.itheima.service包下新建impl包 ,在impl包下创建UserService接口的实现类UserServiceImpl,在UserServiceImpl类中实现login()方法。 

package com.itheima.service.impl;
import com.itheima.dao.UserDao;
import com.itheima.service.UserService;

public class UserServiceImpl implements UserService {
    //使用UserDao接口对象声明userDao
    UserDao userDao;
    //添加setter方法,用于依赖注入
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    @Override
    public boolean login(String name,String password){
        return userDao.login(name,password);
    }
}

2.3 编写applicationContext.xml配置文件

使用<bean>元素添加创建的UserDaoImpl类和UserServiceImpl类的实例,并配置其相关属性。

<?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">
    <!--将指定类配置给Spring,让Spring创建HelloSpring对象的实例-->
    <bean id="helloSpring" class="com.itheima.HelloSpring">
        <!--为userName属性赋值-->
        <property name="userName" value="张三"></property>
    </bean>
    <bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"></bean>
    <bean id="userService" class="com.itheima.service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao"></property>
    </bean>
</beans>

2.4 编写测试类TestSpring.java

package com.itheima;

import com.itheima.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestSpring {
    public static void main(String[] args){
        //加载applicationContext.xml配置
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取配置中的UserService实例
        UserService userService=(UserService) applicationContext.getBean("userService");
        boolean flag=userService.login("张三","123");
        if(flag){
            System.out.println("登录成功");
        }else {
            System.out.println("登录失败");
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_66697650/article/details/130001674