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

网站关键词添加后的后果七台河新闻联播2022视频

网站关键词添加后的后果,七台河新闻联播2022视频,wordpress 模板 外贸,沈阳德泰诺网站建设公司怎么样接下来先简单说一下关于IoC的一些要点,后面我们再详细一步一步讨论。 一、IoC控制反转 IoC控制反转它是一种思想,不是具体的实现控制反转的目的是为了降低程序的耦合度,提高程序的可扩展性,从而满足OCP原则和DIP原则控制反转,那到底反转是什么东西? 我们不再使用某个对象…接下来先简单说一下关于IoC的一些要点,后面我们再详细一步一步讨论。 一、IoC控制反转 IoC控制反转它是一种思想,不是具体的实现控制反转的目的是为了降低程序的耦合度,提高程序的可扩展性,从而满足OCP原则和DIP原则控制反转,那到底反转是什么东西? 我们不再使用某个对象去直接使用代码去new了,对于这种对象的创建权利交出去了。对象与对象之间关系的维护交出去了控制反转这种思想如何实现的呢?在Spring框架当中使用DI(依赖注入)实现二、依赖注入 依赖注入实现了控制反转思想,在Spring当中就是使用依赖注入的方式来实现对Bean的管理的。 Bean管理,是管理啥子? 既然依赖注入是实现了控制反转这种思想,那么Bean管理就是对这种思想的实际体现,所以管理的就是Bean对象的创建;Bean对象中属性的赋值(Bean对象之间的关系)。 我们来拆解一下依赖注入: 依赖:对象与对象之间的关联关系注入:指的是一种数据传递的行为,通过注入这种行为来让对象与对象之间产生关系常见的依赖注入实现方式有:set注入与构造注入 set注入 新增实例来说明具体的实现 新增模块,pom文件中添加依赖 !-- spring context -- dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion6.1.9/version /dependency!--junit-- dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope /dependency 新增Dao类 public class UserDao {public void insert() {System.out.println("正在保存用户数据...");} } 新增Service类,这里service要依赖UserDao实例对象 public class UserService {private UserDao userDao;// 使用set方式注入,必须提供set方法// 反射机制要调用这个方法为属性赋值public void setUserDao(UserDao userDao) {this.userDao = userDao;}public void save() {userDao.insert();} } 新增Spring的配置文件spring.xml 在这个配置文件中,我们就要定义两个bean,同时要声明两个bean中的依赖关系,从下面的配置可以看到我们在声明UserService类对应的bean时,其中就使用set注入,这个与我们实际代码是对应的UserService类中有一个属性要求是UserDao类对象。 ?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"bean id="userDaoBean" class="com.xiaoxie.dao.UserDao"/bean id="userServiceBean" class="com.xiaoxie.service.UserService"!-- set注入 --property name="userDao" ref="userDaoBean"//bean/beans 新增测试类 public class DiTest {@Testpublic void testSetDI() {ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");UserService userService = context.getBean("userServiceBean", UserService.class);userService.save();} } 通过运行上面的测试方法可以正常通过service对象去调用到内save()方法 其上实现的原理: 在spring配置文件中,通过property标签获取到属性名:userDao通过属性名可以推断出对应的set方法:setUserDao()通过反射机制调用setUserDao()方法给对应的属性赋值property标签的name属性指的就是属性名property标签的ref属性就是要注入的bean对象的id,这样的话就通过ref属性来完成bean的装配这里说的装配,相当于一个系统有多个组件,这多个组件按一定的要求和规则组装到一起的过程。 此时如果我们把UserService类中的userDao的set方法删除后,再运行测试方法,程序会报异常:Bean property 'userDao' is not writable or has an invalid setter method. 在解析配置文件推断set方法的逻辑是,通过property中的name属性的值来推断,如果值是userDao,那么推断的方式是:"set" + "userDao".substring(0,1).toupperCase() + "userDao",substring(1) === setUserDao 只要在要进行依赖注入的类中存在推断出来的方法即可,它在装配时就会调用这个方法,通过这个方法来进行属性的赋值,打比方,我们把代码修改为如下: public class UserService {private UserDao userDao;public void setAbc(UserDao userDao) {this.userDao = userDao;}public void save() {userDao.insert();} } 那么对应的配置文件也应该同步修改为如下: ?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"bean id="userDaoBean" class="com.xiaoxie.dao.UserDao"/bean id="userServiceBean" class="com.xiaoxie.service.UserService"!-- set注入 --property name="abc" ref="userDaoBean"//bean/beans 构造注入 构造注入指的是在装配时通过构造方法来给指定的属性赋值 新增OrderDao类 public class OrderDao {public void createOrder() {System.out.println("正在创建订单...");} } 新增OrderService类 public class OrderService {private OrderDao orderDao;public OrderService(OrderDao orderDao) {this.orderDao = orderDao;}public void create() {orderDao.createOrder();} } spring配置文件中进行构造方法注入的配置 bean id="orderDaoBean" class="com.xiaoxie.dao.OrderDao"/ bean id="orderServiceBean" class="com.xiaoxie.service.OrderService"constructor-arg index="0" ref="orderDaoBean"/ /bean 测试类中进行测试 OrderService orderService = context.getBean("orderServiceBean", OrderService.class); orderService.create(); 对于构造方法注入,使用的标签是:constructor-arg 因为要注入,所以要指定哪个bean实例赋值给那个属性进行装配,这个装配的“图纸”一定要搞清楚,要不然会出错,那这里要如何对应呢? 对应关系可以通过如下几种方式来指定: 通过下标来指定,比如上例中的index属性,下标是从0开始的,0表示构造方法中的第一个参数,1表示第二个参数,依次类推通过参数名称来指定,比如上列中还可以修改为constructor-arg name="orderDao" ref="orderDaoBean"/也可以不指定下标和参数名,比如上列中直接写为constructor-arg ref="orderDaoBean"/注意:当我们既不指定index也不提定nane时,只是指定了ref(待注入的bean)时要保证构造方法中的各个参数类型是唯一的,因为这个时候spring是根据参数的类型与指定ref的类型去匹配注入的! 在我们实际使用中set注入是比较常用的,接下来专门以set注入作为一个专题来详细聊聊依赖注入 三、详聊set注入 注入外部Bean(常用) 前面我们在举例set注入的时候就是一种外部Bean注入的方式 ?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"bean id="userDaoBean" class="com.xiaoxie.dao.UserDao"/bean id="userServiceBean" class="com.xiaoxie.service.UserService"property name="userDao" ref="userDaoBean"//bean /beans 它的特点就是,待注入的bean是定义在当前bean的外部的,在当前bean中要注入它的时候使用ref来进行注入。一般来说都是采用这种方式进行注入,单独把bean定义在外部可以提高这个bean的复用性,谁知道有没有其它的bean要注入这个bean呢? 注入内部Bean(使用少) !-- 使用内部bean注入 -- bean id="userServiceBean" class="com.xiaoxie.service.UserService"property name="userDao"bean class="com.xiaoxie.dao.UserDao"//property /bean 这种方式在property标签内部再写一个bean标签,使用这种方式进行注入叫注入内部Bean,这个内部的bean只在这个bean可以访问到#
http://www.hkea.cn/news/14443948/

相关文章:

  • 网站制作什么品牌好wordpress the7不显示分类页
  • 网站开发前端框架网站规划与建设进度
  • 用ps做个人网站界面学工系统网站建设的意义
  • 长沙有做网站的吗wordpress环境虚拟机安装
  • 邹平建设局官方网站网站之间如何交换友情链接
  • 沈阳网站推广优化微信小程序登陆wordpress后台
  • 买域名后怎么做网站达内教育学费价目表
  • 公司申请网站建设申请理由荥阳网站开发
  • 做二维码网站中国建设工程质量安全管理协会网站
  • 一个购物网站多少钱2018年的网站制作
  • 网页设计论文前言茂名seo网站建设
  • 做网站年薪百万前端外包网
  • 网站下拉箭头怎么做的建网站语言
  • 重庆网站建设的目的大渡口发布
  • 中山建设企业网站凡科可以做社交网站吗
  • 网站链接结构便宜的自助建站
  • 玄武模板网站制作报价网站策划书一般包括以下内容
  • 生鲜网站制作购物网站开发语言
  • 做视频网站需要多大带宽wordpress的ftp设置方法
  • 门户网站建设计划百度的关键词优化
  • 下载免费网站模板下载安装上海网站建设广告语
  • 高端网站设计旅游类网站建设教案
  • 网站关键词布局图福建省住房和城乡建设部网站
  • 珠宝网站方案好用的网页制作软件
  • 广州建网站哪家好如何更换网站空间
  • 好的摄影网站推荐wordpress博客 centtos
  • 泉港做网站公司python采集到wordpress
  • 如何进行网站icp备案在线制作图片拼接
  • 网站首页特效手机wap浏览器
  • 网站正能量免费软件网站开发设计中的收获