当前位置: 首页 > news >正文

网站开发 源代码乔拓云网站注册

网站开发 源代码,乔拓云网站注册,什么网站流量多,重庆所有做网站的公司简介 **控制反转**(Inversion of Control,缩写为**IoC**),是[面向对象编程]中的一种设计原则,可以用来减低计算机[代码]之间的[耦合度]。其中最常见的方式叫做[依赖注入]Dependency Injection,简称DI&#…

简介

**控制反转**(Inversion of Control,缩写为**IoC**),是[面向对象编程]中的一种设计原则,可以用来减低计算机[代码]之间的[耦合度]。其中最常见的方式叫做[依赖注入]Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。

控制反转IOC: 把对象创建和对象之间的调用过程,交给spring进行管理

使用IOC目的: 为了降低耦合度

上面的入门案例 就是IOC实现

底层原理

使用xml 解析,工厂模式,反射

 IOC接口 (BeanFactory)

IOC思想基于IOC容器完成,IOC容器底层就是工厂对象

Spring提供IOC容器实现两种方式 (2个接口)

(1)BeanFactory: IOC 容器基本实现,是spring内部的使用接口,不提供开发人员进行使用

加载配置文件时,不会创建对象,在获取(使用)对象时,才去创建对象

(2)ApplicationContext:ApplicationContext是BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用,

加载配置文件时候就会把 配置文件中配置的对象进行创建

IOC操作Bean管理


1. 什么是bean管理
  bean管理指的是两个操作:
  a. spring 创建对象
  b. spring 注入属性
2. Bean管理操作有2种方式
   a 基于xml方式
   b.基于注解方式
 

  

 基于xml方式创建对象 

(1)在spring配置文件种,使用bean标签,标签里面添加对应的属性,就可以实现对象创建

(2)bean标签常用属性

id属性: 唯一标识

class属性:类全路径 (包类路径)

(3)创建对象时候,默认执行无参构造方法,完成对象的创建


<!--配置User对象创建-->
<bean id="user" class="com.ly.User">
 

基于xml方式注入属性

(1)DI: 依赖注入, 就是注入属性

第一种子 注入方式: 使用set方法进行注入

(a) 创建类,定义属性和setter

 package com.ly;​public class Book {​//创建属性private String bName;private String author;​public void setbName(String bName) {this.bName = bName;}public void setAuthor(String author) {this.author = author;}public void print(){System.out.println(bName+","+author);}}
 ​

(b) 在spring配置文件中 ,配置对象及属性

<!--使用set 方法注入属性--><bean id="book" class="com.ly.Book"><!--使用property完成属性注入name:类里面属性名称value:向属性注入的值--><property name="author" value="王丽丽"></property><property name="bName" value="李四"></property></bean>

(c)测试

  
@Testpublic void tesBook(){//1. 加载spring配置文件ApplicationContext context = new ClassPathXmlApplicationContext("demo1.xml");//2.获取 配置创建的对象Book book = context.getBean("book", Book.class);book.print();}​
 控制台输出:李四,王丽丽

有参构造方法进行注入 

(a) 创建类,定义属性,生成带参构造方法

 
package com.ly;// 使用 有参构造注入public class Order {private String oName;private String address;​public Order(String oName, String address) {this.oName = oName;this.address = address;}//为了测试 结果 添加的public void print(){System.out.println(oName+"::"+address);}}

(b)在spring配置文件中 进行配置

 <!--使用 带参构造方式注入--><bean id="order" class="com.ly.Order"><constructor-arg name="address" value="天津市"></constructor-arg><constructor-arg name="oName" value="玩具车"></constructor-arg></bean>

(c) 测试

 
 @Testpublic void tesOrder(){//1. 加载spring配置文件ApplicationContext context = new ClassPathXmlApplicationContext("demo1.xml");//2.获取 配置创建的对象Order order = context.getBean("order", Order.class);order.print();}
 ​​控制台输出 :玩具车::天津市

p命名空间注入 

(1)使用p命名空间注入, 可以简化基于xml配置方式

a. 添加p命名空间 xmlns:p="http://www.springframework.org/schema/p"

 <beans xmlns="http://www.springframework.org/schema/beans"xmlns:p="http://www.springframework.org/schema/p"     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">
 ​

b.进行属性注入,在bean标签里面进行操作

 <bean id="book" class="com.ly.Book" p:author="李四" p:bName="html"></bean>

基于xml注入其他类型属性

1.字面量(固定值)

a. null值 ---<null/> 标签

<bean id="book" class="com.ly.Book">​<property name="author" value="王丽丽"></property><property name="bName" value="李四"></property><!--address 值为 null 空值--><property name="address"><null/></property></bean>
b.属性值包含特殊符号
 使用转义 
<property name="address" value="&lt;南京&gt;"></property>
 或者cdata
 <property name="address"><value><![CDATA[<南京>]]></value></property>​
 控制台输出李四,王丽丽,<南京>

http://www.dinnco.com/news/12156.html

相关文章:

  • 做网站虚拟主机哪家好宣传方式
  • po wordpress武汉seo公司哪家好
  • 网站做软件有哪些营销网站
  • 微信小程序一键生成免费荆州seo推广
  • 上海企业网站排名优化百度服务热线电话
  • 云南建设局网站首页有什么推广的平台
  • 有哪些网站可以学做糕点的百度关键词排名手机
  • 电子商务网站规划与建设试题世界十大网站排名
  • 珠海网站建设哪家好seo关键词排名优化评价
  • 自己怎么优化网站排名怎么做一个网页
  • 企业安全文化建设程序重庆seo管理平台
  • 大兴模版网站建设哪家好百度免费下载安装百度
  • 信宜做网站设置福州seo网站排名
  • 做网站找谁跨国网站浏览器
  • 大型网站开发语言java免费seo网站推荐一下
  • 网站营销的流程企业seo网络推广
  • 宁波网站设计开发下载百度app最新版
  • 杭州国外网站推广公司金华关键词优化平台
  • 网站建设是前端的吗公众号怎么开通
  • 辽宁住房和建设厅网站谷歌广告怎么投放
  • 网站被管理员权限seo排名赚app靠谱吗
  • 嘉兴ai人工智能开发网站建设教育培训机构招生方案
  • 今天刚刚最新消息2023淘宝seo搜索优化工具
  • win7 iis配置wordpressseo策略是什么意思
  • 广东做网站公司有哪些营销软件网
  • 苏州网站开发公司兴田德润在哪儿自己怎么免费做百度推广
  • 简述商务网站建设步骤网站如何提交百度收录
  • 儿童网站源码app推广平台
  • 在深圳做网站平台需要什么备案百度站长工具链接提交
  • 网站后台灰色百度资源站长平台