Spring第二章(快速入门)
1.Spring程序的开发步骤
- 创建相关bean接口以及实现
- 配置Spring的XML配置文件 , 将需要spring为我们管理的bean的全限定名(全包名+类名)配置到XML中
- 为交由spring创建的bean设置唯一标识 , 后期通过此标识在spring中获取bean
- spring容器被初始化后spring会通过全限定名以反射的方式为我们创建相关bean
- 通过spring容器客户端 , 获得我们交由spring管理的bean
以上就是如何使用spring以及spring是如何帮我们完成工作的大概流程 , 看上去可能还不如传统new对象的方式方便. 但是spring以这种方式就让我们具体的实现类业务调用代码起到了解耦的功效 , 并且我们将对象交由spring管理后我们就不用再以频繁new对象的方式创建对象 , 提高程序效率
2.上代码!
2.1 创建maven工程 …此处省略
2.2 导入spring的坐标
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.2</version>
</dependency>
2.3创建需要的接口以及实现类
接口类
public interface UserDao {
public void save();
}
实现类
public class UserDaoImpl implements UserDao {
public void save() {
System.out.println("保存方法执行");
}
}
创建spring配置文件applicationContext.xml 放置在resource目录下 (配置文件名可自定以但一般我们使用官方建议的名称)
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="userDao" class="com.gyd.dao.impl.UserDaoImpl"></bean>
</beans>
配置bean的唯一标识以及全限定名 , 相当于告诉spring那些bean是需要被管理的 (上边那一大坨是spring配置文件的命名空间) 可通过spring官网获得 .
创建测试类UserDaoDemo
public class UserDaoDemo {
public static void main(String[] args) {
//spring上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//通过bean的唯一标识获得bean
UserDao userDao=(UserDao) context.getBean("userDao");
//调用方法
userDao.save();
}
}
运行测试
可以看到我们的实现类方法被调用成功了
注意事项
- bean标签中的id是每个bean的唯一标识 ,不允许重复
- 按照以上示例在UserDaoImpl类中必须提供无参构造 , 因为spring会通过newInstance()反射帮我们创建对象 .当然也可以通过有参构造等方式创建对象 , 这里仅是入门不过多介绍
- bean标签中的class属性即全限定名
总结
我们可以看到通过spring的方式创建对象 , 在我们的demo类中全程没有出现UserDaoImpl这个实现类 . 这就实现了解耦操作 , 若以后需要更换实现类 我们仅需修改spring的配置文件即可