初识Spring框架
文章目录
- IOC (Inverse of Control 控制反转)
- DI (Dependency Injection 依赖注入)
- 入门案例 --- 组件、注册
-
- 第一步、引入依赖
- 第二步、编写配置文件 ---xml
-
- 从官网查看 xml 格式 然后保存为模板
- 注册组件 ---在配置文件 xml 文件中写的
- 单元测试
IOC (Inverse of Control 控制反转)
控制:实例的生成反转:控制权的反转,实例生成权的反转 → 由应用程序反转给Spring容器:Spring容器、IOC容器,放的是实例,这些实例在Spring容器中通常以单例的形式管理起来 → 生成并管理实例的地方
class UserServlet extends HttpServlet{//应用程序直接获得实例UserService userService1 = new UserServiceImpl();//实例通过Spring来获得UserService userService2 = Spring.getInstance(UserService.class);
}
DI (Dependency Injection 依赖注入)
应用程序依赖于Spring容器,Spring容器中包含了应用程序运行所必须的资源(实例)Spring容器注入给应用程序(应用程序接收来自于Spring容器的资源)
入门案例 — 组件、注册
组件:Spring容器管理的实例叫组件注册:注册组件,Spring容器管理实例
第一步、引入依赖
Spring的依赖5+1spring-core\\context\\aop\\expression\\beans + jcl(日志包)junit (测试用)lombok @Data(set get toString) 用到
第二步、编写配置文件 —xml
从官网查看 xml 格式 然后保存为模板
官网 https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#core.appendix.xsd-schemas-context
注册组件 —在配置文件 xml 文件中写的
<!--注册组件 → UserServiceImpl (这个是我们编写的类名) -->
<!--id属性:组件在Spring容器中唯一标识-->
<!--class属性:全限定类名 ctrl + alt + shift + c-->
<bean id="userService" class="com.tz_xuge.service.UserServiceImpl"/>
单元测试
@Testpublic void test() {// 初始化 容器// 能够加载在classpath下的配置文件 configLocation 配置位置ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application.xml");// 从容器中取出 组件(实例) -> 用接口来接受 组件(实例)// 方法一 根据 idUserService userId = (UserService) applicationContext.getBean("UserId");// 方法二 根据 class 但是如果 有不同的类 继承同一个接口 则不能用 because 用接口来接受
// UserService applicationContextBean = applicationContext.getBean(UserService.class);
// applicationContextBean.sayHello();//方法三 根据 id 和 class
// UserService applicationContextBean = applicationContext.getBean("UserId", UserService.class);
// applicationContextBean.sayHello();// userId 就是类UserServiceImpl 的对象userId.sayHello();}