【案例介绍】
(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("登录失败");
}
}
}