2020java框架教程之spring的bean作用域
Scope作用域
单例 singleton:
在整个应用程序中,只创建bean的一个实例
原型 prototype:
每次注入或通过spring上下文获取的时候,都会创建一个新的bean实例
会话 session:
在web应用程序中,为每个会话创建一个bean实例
请求request:
在web应用程序中,为每个请求创建一个bean实例
单例和多例
2020java框架教程之spring概述以及入门helloworld
什么是spring?
Spring是一个非常活跃的开源框架,由Rod Johnson开发,帮助分离项目组件之间的依赖关系,它的主要目的是简化企业开发
核心概念
IOC:Inversion Of Control控制反转
DI:Dependency Injection 依赖注入
AOP:Aspect Oriented Programming 面向切面编程
Spring的组成
2020javaweb框架教程:spring对象创建的细节
单例和多例
1.默认情况下bean是单例的,scope=”singleton’;
2.多例配置:scope=”prototype”;
3.scope=”request”;
4.scope=”session”;
<!-- singleton是单例 获取的对象都是同一个地址 --> <bean name="users2" class="entity.Users" scope="singleton"></bean> <!-- prototype 是 多例 每次构建对象都 new一个新的地址 --> <bean name="users2" class="entity.Users" scope="prototype"></bean>
2020javaweb框架教程之spring的IOC与DI以及注入
IOC
Inverse Of Controll:控制反转
反转了依赖关系的满⾜⽅式,由之前的⾃⼰创建依赖对象,变为由⼯⼚推送。(变主动为被动,即反转)。
解决了具有依赖关系的组件之间的强耦合,使得项⽬形态更加稳健
DI
Dependency Injection :依赖注⼊
全新的依赖满⾜⽅式,体现在编码中就是全新的赋值⽅式 ==> 在⼯⼚中为属性推送值
如: <property name=”userDAO” ref=”userDAO”></property>
IOC与DI
在spring中关于IOC和DI的描述是这样的: IOC(DI) ,即,是⼀码事
IOC 是思想 :指导我们在满⾜依赖时,应该有反转的设计。
DI 是⼿段 :实际操作时,就是在⼀次次的 注⼊
(更多…)
2020javaweb框架教程之spring概述以及配置
spring
作用:项⽬管理。 管理组件(对象 DAO,Service,Controller)
spring工厂搭建
1.导入依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.6.RELEASE</version> </dependency>
2.配置文件
作用:描述哪些组件需要spring⽣产,管理
文件位置:src–>–>main–>resources目录
文件名随意,如:applicationContext.xml
<?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 ⽣产的组件 --> <!-- UserDAOImpl组件 id="组件标识" class="组件类型" --> <bean id="userDAO" class="dao.impl.UsersDaoImpl"/> </beans>
3.启动工厂
工厂接口:ApplicationContext
实现类:ClassPathXmlApplicationContext
service无序调用dao的实现类,直接创建dao并添加set/get方法,然后在applicationContext.xml配置
<!-- spring生成该对象,对象中有一个属性需要赋值--> <bean id="userService" class="service.impl.UsersServiceImpl"> <!-- 给属性 UsersDao 的变量 赋值,值:id="userDAO" --> <property name="ud" ref="userDAO"/> </bean>
然后再去工厂去生成一个
UsersService us = context.getBean("userService", UsersService.class); us.insert(new Users());