谈谈对电子商务网站建设与管理,做网站中怎么设置单张图片,青州市建设局网站,东莞网站建设优化东莞IoC IOC容器
IoC是一种设计思想#xff0c;面向对象编程
Spring通过IoC管理所有Java对象的实例化和初始化#xff0c;控制对象之间依赖关系
将IoC容器管理的Java对象称为Spring Bean#xff0c;与new创建的对象没有区别 控制反转#xff08;IoC Inversion of Controle面向对象编程
Spring通过IoC管理所有Java对象的实例化和初始化控制对象之间依赖关系
将IoC容器管理的Java对象称为Spring Bean与new创建的对象没有区别 控制反转IoC Inversion of Controle
指将对象的创建权力交给第三方容器负责 依赖注入DI Dependency Injction
Spring创建对象过程中将对象依赖属性通过配置进行注入
DI是IoC思想的具体实现 IoC容器在Spring的实现
IoC容器是IoC思想的产品实现
IoC容器管理组件 -》 Spring的bean或对象
Spring提供的IoC容器实现方法
BeanFactory
Spring内部接口不提供给开发人员使用
ApplicationContext
BeanFactory子接口更多高级特性面向使用者
ApplicationContext主要实现类
ClassPathXmlApplicationContext
读取类路径XML配置文件创建IoC容器对象
FileSystemXmlApplicationContext
读取系统路径XML配置文件创建IoC容器对象 基于XML管理Bean
ApplicationContext ac new ClassPathXmlApplicationContext(beans.xml);
id属性是bean的唯一标识
HelloWorld bean HelloWorldac.getBean(“id”);
HelloWorld bean HelloWorldac.getBean(“id”); 还可以根据类获取(该类在XML中只能有一个)
不用强制转换成目标类
HelloWorld bean ac.getBean(HelloWorld.class) ; 还可以标识和类都使用
HelloWorld bean ac.getBean(HelloWorld.class”id”) ; 使用setter注入依赖
创建类在类中创建变量 变量创建set和get方法或只产生set方法 这样就可在Spring的xml中注入变量值 为不同对象类型属性赋值
使用外部bean
将XML中其他bean的id填入ref属性中 使用内部bean
在一对property之间创建bean 为数组类型属性赋值 为集合类型属性赋值
private List students; 为Map集合类型属性赋值 单实例bean
默认将bean实例化获得的对象是一样的
ApplicationContext ac new ClassPathXmlApplicationContext(beans.xml);Hello hello1 ac.getBean(hello);Hello hello2 ac.getBean(hello);
hello1和hello2是同一个对象
但是可以修改为多实例的对象 添加scope属性其中singleton默认单实例prototype是多实例 引入外部属性文件
在resources目录中常见properties类型文件 在文件中写入数据namevalue 在Spring config的beans.xml中引入外部属性文件 最后可以在beans中使用属性文件中的属性(${name}) 基于注解管理Bean
Spring默认不使用注解
spring config中通过context:component-scan 元素开启 Spring Beans的自动扫描功能
自动扫描指定的包及其子类
若某类使用类Component注解就将该类装配到容器中来创建bean
Component:
标识Spring中的Bean可以应用在任何层次。
Repository:
标识Bean用于数据访问层Dao层负责与数据库进行交互
Service
标识Bean用于业务层Service层调用数据访问层的方法来获取或修改数据
Controller
标识Bean用于控制层Controller层处理用户的请求并响应
控制层 - 业务逻辑层 - 数据访问层。 开启自动扫描org.example包的类 使用Component注解来标识类
在注解中配置value属性或直接写值作为该bean的id bean对象实例化调用无参数构造方法这里无参数构造方法直接赋值变量
最后在测试类中获取bean并执行 AutoWired注解自动注入
将bean自动注入到对应的类中
只在有注解管理的类中才能只用
省去了bean中配置对象类型property的过程
默认根据类型装配byType所以AutoWired注解不需要指定名字
创建注解管理的Hello类 创建注解管理的name类
使用Autowired注解注入Hello类 还可以将注解写在setter方法上 还可以将注解写在name的构造方法上
来注入Hello类 配合Qualifier让Autowired根据名称注入
若同一类有多个bean时使用 Resource注解属性注入
和Autowired目的一样
但是Resource注解是根据名字注入的byName
若没有名字再byType寻找bean注入 Resource是JDK扩展包的一部分AutoWired是Spring的一部分。
JDK扩展包需要额外引入