1.Spring简介
spring的full-stack全栈是什么意思?
就是在每一层都有对应的解决方案,如web层有对应的spring MVC,在dao层有JDBC Template
2.Spring优势
Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理
Spring工厂是用于生成bean
3.Spring体系结构
4.Spring开发步骤
这是之前的开发,现在是想借助spring框架完成解耦合
spring框架的作用就是读取这个配置文件,从而获得全包名,帮助创建对象的。
步骤:
(1)导入Spring开发的基本包坐标。导入框架对应的jar包,这里是maven,就是导入spring对应的maven坐标
(2)编写Dao接口和实现类。要获得UserDaoImpl对象,因此要编写UserDao的接口和UserDaoImpl的实现
(3)创建Spring核心配置文件。创建xml配置文件
(4)在Spring配置文件中配置UserDaoImpl。将UserDaoImpl的全包名配置到xml配置文件中
(5)使用Spring的API获得Bean实例。通过这句话UserDao userDao = Spring客户端.getBean(id标识);把标识传进去,最终返回一个对象,这样的话,就去找Spring容器去要对象,而不是自己去new对象的。
通过这五步可以完成解耦
后面如果替换成其他对象,直接在配置文件中修改就行了。
下面按照上面的五个步骤实现一下:
(0)创建maven工程
这个可以参考我的这一篇博客:https://www.cnblogs.com/GumpYan/p/13711056.html
(1)在pom.xml中导入坐标
(2)编写Dao接口和实现类
UserDao.java(接口)
package com.company.dao; public interface UserDao { public void save(); }
UserDaoImpl.java(实现类)
package com.company.dao.impl; import com.company.dao.UserDao; public class UserDaoImpl implements UserDao { public void save() { System.out.println("save running..."); } }
(3)创建Spring核心配置文件。创建xml配置文件,applicationContext.xml
如果没有Spring config,可以看这三篇文档解决:
https://blog.csdn.net/Javaytp/article/details/79637101#commentBox
https://www.cnblogs.com/iceywu/p/12366871.html
https://blog.csdn.net/wt_better/article/details/78162332
注意:一定要刷新项目工程
(4)在Spring配置文件中配置UserDaoImpl。将UserDaoImpl的全包名配置到xml配置文件中
(5)使用Spring的API获得Bean实例
package com.company.demo; import com.company.dao.UserDao; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class UserDaoDemo { public static void main(String[] args) { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); UserDao userDao = (UserDao) applicationContext.getBean("userDao"); userDao.save(); } }
打印出来结果: