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

自建站系统凡科登录入口下载

自建站系统,凡科登录入口下载,西部数据网站管理助手,大连网络推广公司推荐目录 SpringIoc创建与使用的大致步骤 一.基于xml配置SpringIoc 二.基于xml配置DI 三.创建IoC容器并获取组件 SpringIoc创建与使用的大致步骤 SpringIoC的创建与使用过程分为3步 1.编写配置信息#xff08;编写XML#xff0c;注解、Java类#xff09; 2.创建IoC容器编写XML注解、Java类 2.创建IoC容器实例化Ioc对象 3.从Java代码中获取组件并使用 一.基于xml配置SpringIoc 实现过程思路 1.配置SpringIoc的jar包依赖 !-- SpringIoc核心jar包 包含core ioc breans 等 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.0.2.RELEASE/version/dependency!-- junit5测试 --dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.3.1/version !-- 使用属性引用JUnit Jupiter版本 --scopetest/scope/dependency 2.编写xml配置文件配置xml相关约束 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd/beans 由于SpringIoc是存放组件的容器而组件内容是可重复使用的对象。在xml中bean标签就是代表着组件 3.三种创建组件的方式 不同的创建组件的方式对应的xml配置也不同。下面介绍三种创建组件的方式无参构造方式创建组件静态工厂创建、非静态工厂创建 1.无参构造方式创建组件 当通过构造函数方法创建一个bean(组件对象) 时所有普通类都可以由 Spring 使用并与之兼容。也就是说正在开发的类不需要实现任何特定的接口或以特定的方式进行编码。只需指定 Bean 类信息就足够了。但是默认情况下我们需要一个默认 (空)构造函数。 无参构造对象代码案例 package com.alphamilk.Ioc; //无参构造类 public class wucanTemp {public void doWork(){System.out.println(调用无参构造方法doWork函数);} }对应的xml配置 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd!-- 无参构造方式配置bean 一个组件信息 一个组件对象id组件的唯一标识不可重复class组件通过反射创建所以需要类的权限定符配置完一个组件相当于new了一个wucanTemp对象 -- bean idwucanTemp classcom.alphamilk.Ioc.wucanTemp/ /beans 2.静态工厂创建组件 静态工厂代码 package com.alphamilk.Ioc;//静态工厂代码 public class HelloTemp {private HelloTemp(){}public static HelloTemp getHelloTemp(){HelloTemp temp new HelloTemp();return temp;} }对应XML配置 !-- 静态工厂的组件配置bean 一个组件信息一个组件对象 一个工厂静态方法id组件的唯一标识class类的权限定符factory-method工厂的静态方法 --bean idhelloTemp classcom.alphamilk.Ioc.HelloTemp factory-methodgetHelloTemp/ 3.非静态工厂创建组件 package com.alphamilk.Ioc;//非静态工厂 public class FactoryNoStatic {private static FactoryNoStatic factoryNoStatic new FactoryNoStatic();public FactoryNoStatic getInstance(){return factoryNoStatic;} }对应的XML配置 !-- 3非静态工厂配置组件-- !-- 3.1配置工厂类的组件信息--bean idfactoryNoStatic classcom.alphamilk.Ioc.FactoryNoStatic/!-- 3.2通过指定非静态工厂对象和方法名来配置生成的ioc信息--bean idfactoryNoStatic2 factory-beanfactoryNoStatic factory-methodgetInstance/ 二.基于xml配置DI DI依赖注入有两种实现方式 第一种通过构造函数实现另一种是通过setter实现两种不同的方式实现对应的xml配置也有所不同。下边分别介绍每种的配置。 1.基于构造函数实现对象 基于构造函数的 DI 是通过容器调用具有多个参数的构造函数来完成的每个参数表示一个依赖项下面的示例演示一个只能通过构造函数注入进行依赖项注入的类! 基于单参构造方法 类对象案例 package com.alphamilk.loc2;public class UserDao { }public class UserService {private UserDao userDao new UserDao();private String name;private int age;// 单参构造方法UserService(UserDao userDao){this.userDao userDao;} // 多参构造方法UserService(String name,int age,UserDao userDao){this.namename;this.age age;this.userDao userDao;} }单参构造方法下DI依赖注入的配置 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd!-- 单参数构造方法-- !-- 步骤1将对象都存放在IOc容器中-- bean iduserDao classcom.alphamilk.loc2.UserDao/!-- 构造参数传递di的配置constructor-org 构造参数传值的di配置value直接属性值ref 引用其它的bean组件传入bean的id值 --bean idservice classcom.alphamilk.loc2.UserServiceconstructor-arg refuserDao//bean /beans 多参情况下DI依赖注入对应xml配置 !-- 基于多参构造方法-- !-- 步骤1将对象存放在Ioc容器中--bean iduserDao classcom.alphamilk.loc2.UserDao/bean idservice classcom.alphamilk.loc2.UserService !-- 方案1通过使用name对应参数配置【推荐】--constructor-arg nameage value29/constructor-arg namename value黄小龙/constructor-arg nameuserDao refuserDao//beanbean iduserDao classcom.alphamilk.loc2.UserDao/bean idservice classcom.alphamilk.loc2.UserService !-- 方案2通过顺序的方式传递参数--constructor-arg value黄小龙/constructor-arg value29/constructor-arg refuserDao//beanbean iduserDao classcom.alphamilk.loc2.UserDao/bean idservice classcom.alphamilk.loc2.UserService!-- 方案3通过下角标位置的方式传递参数--constructor-arg index0 value黄小龙/constructor-arg index1 value29/constructor-arg index2 refuserDao//bean 2.基于setter函数实现对象 基于构造函数的 DI 是通过容器调用具有多个参数的构造函数来完成的每个参数表示一个依赖项 下面的示例演示通过构造函数注入多个参数参数包含其他 bean和基本数据类型! 类对象案例 package com.alphamilk.loc3;public class UserDao { }//setter方式注入 public class UserService {private UserDao userDao new UserDao();private String name;private int age;public void setUserDao(UserDao userDao) {this.userDao userDao;}public void setName(String name) {this.name name;}public void setAge(int age) {this.age age;} }对应xml配置 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd !--触发 setter方法进行注入--bean iduserDao classcom.alphamilk.loc3.UserDao/ !-- name-》属性名 setter方法的 去掉set并且首字母小写的值 调用set方法名比如setName -》namevalue | ref 进行二选一 value直接属性值 ref 其他bean的id --bean idservice classcom.alphamilk.loc3.UserServiceproperty nameage value52/property namename value张三/property nameuserDao refuserDao//bean /beans 三.创建IoC容器并获取组件 1.创建Ioc容器对象 首先类对象 package com.alphamilk.loc4;public class HelloTemp {public void doWork(){System.out.println(HelloTemp is Working);} }然后进行xml文件配置IoC ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdbean idhelloTemp classcom.alphamilk.loc4.HelloTemp/ /beans 两种实现创建IoC容器对象 package com.alphamilk.Ioc;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test { // 创建SpringIoc容器方法 /*两个接口BeanFactoryApplicationContext四个实现类ClassPathXmlApplicationContext 读取类路径下的xml配置方式WebApplicationContext读取指定文件的xml配置方式FileSystemXmlApplicationContext读取配置类方式的ioc容器AnnotationApplicationContext web项目专属的配置ioc容器*/org.junit.jupiter.api.Testpublic void createIoc(){ // 方式一通过直接创建容器并且指定配置文件即可ApplicationContext applicationContext new ClassPathXmlApplicationContext(Springioc.xml);// 方式二通过先创建ioc容器对象再指定配置文件再刷新ClassPathXmlApplicationContext applicationContext1 new ClassPathXmlApplicationContext();applicationContext1.setConfigLocations(Springioc.xml);applicationContext1.refresh();} }2.通过创建的容器获取组件 获取组件步骤1.创建ioc容器 2.获取组件 三种获取组件方式 第一种获取bean的方式,通过获取getBean加上bean的id返回Object类型,再将其转为对应的类型。第二种获取bean的方式通过获取bean的同时指定其返回的类型。第三种获取bean方式根据类型获取。 package com.alphamilk.Ioc;import com.alphamilk.loc4.HelloTemp; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test {org.junit.jupiter.api.Testpublic void useBean(){// 第一种获取bean的方式,通过获取getBean加上bean的id返回Object类型,再将其转为对应的类型 // 创建Ioc容器ApplicationContext context new ClassPathXmlApplicationContext(springioc.xml); // 获取组件HelloTemp helloTemp (HelloTemp) context.getBean(helloTemp);// 第二种获取bean的方式通过获取bean的同时指定其返回的类型 // TODO注意可能会出现向下转型异常 // 创建Ioc容器ClassPathXmlApplicationContext applicationContext new ClassPathXmlApplicationContext();applicationContext.setConfigLocation(springioc.xml);applicationContext.refresh(); // 获取组件applicationContext.getBean(helloTemp,HelloTemp.class);// 第三种获取bean方式根据类型获取 // 创建Ioc容器ClassPathXmlApplicationContext classPathXmlApplicationContext2 new ClassPathXmlApplicationContext();classPathXmlApplicationContext2.setConfigLocation(springioc.xml);classPathXmlApplicationContext2.refresh(); // 获取组件 // TODO:注意这种方法有许多条件 // 根据bean类型获取,一次只能有一种类型,举例在ioc容器中如果有多个HelloTemp对象,继续使用这种方法会报错classPathXmlApplicationContext2.getBean(HelloTemp.class);// 注意虽然是三种不同的获取方式,但是获取到的对象都是同一个,三种方法只是对应三种类型的指针指向Ioc容器中存放的组件helloTemp.doWork();} }基于注解配置 SpringIoC基于注解配置_Alphamilk的博客-CSDN博客
http://www.hkea.cn/news/14483447/

相关文章:

  • 珠海专业机械网站建设wordpress更新很慢
  • 墙蛙网站谁家做的seoul怎么读
  • 广州免费建站哪里有最近最新mv在线观看免费高清
  • 创新的宁波网站建设电子商务职业生涯规划书
  • 响应式装饰设计公司网站源码广州网站推广建设
  • 在百度做网站推广怎么做做非法网站会怎样
  • 济南建站详情wordpress 主题慢
  • 网站的表格参数怎么做用c 做一个小网站怎么做
  • 建设网站用什么网络好wordpress comments_popup_link
  • 在哪个网站做推广比较好网上团建智慧团建登录入口
  • 电子商务网站功能一般网站建设公司好
  • 网站loading动画电子商务网站建设一般流程
  • 河南住房和城乡建设厅一体化平台网站个人网页设计说明500字
  • php图片展示网站佛山网站建设佛山
  • 网站打不开了怎么办建e网官方网站
  • 自己电脑上做网站怎么使用源码个人微信号做网站行吗
  • 桂林网站制作公司华彩网站定制化价格
  • 国内最大的c2c网站是网站后台发邮件
  • 湖南响应式网站建设公司简介宣传
  • 关于春节的网站设计html重庆市建设银行网站首页
  • 自助建站系统个人网站网站简介 title
  • 建一个商城网站多少钱宁波模板建站定制网站
  • iis7.5 查看网站流量响应式网站介绍
  • 网站开发需要哪些如何做网站的伪静态页面
  • 做网站一般有几个关键词制作制作网站开发
  • 用python做网站后台恩施北京网站建设
  • 怎么看一个网站谁做的优化沈阳化工大学建设工程网
  • 公司网站备案申请家装网站模板下载
  • 苏州做网站优化网站及商品排名怎么做
  • 网站搭建用什么软件四川网站seo设计