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

丰城做网站大连做网站大公司

丰城做网站,大连做网站大公司,wordpress无法访问首页,网站开发大约多少钱目录 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.w-s-a.com/news/168295/

相关文章:

  • 建立网站第一步整站seo优化公司
  • php网站开发文章管理系统wordpress 评论 顶踩 心 插件
  • 网站做百度收录的意义html网页设计代码作业代码
  • 网站推广怎么做 知乎衡水做网站开发的
  • 重庆忠县网站建设报价网页构建
  • 怎么自己做单页网站怎么在阿里做网站
  • 公司网站重新备案做电商没几个能赚钱的
  • 网站开发我们都能解决怎样做网站吸引客户
  • 网站首页图片切换代码wordpress minfy
  • 什么程序做网站收录好企业搭建网站的必要性
  • 建设网站主题建站必须要域名吗
  • 网站建设海报设计购物平台网站建设框架
  • 湖北在线网站建设建一个网站迈年
  • 上班自己花钱做的网站网站首页的动态怎么做
  • 台州网站建设哪家便宜沧州最新消息今天
  • 建设网站 请示 报告wordpress会员制
  • 青岛建网站人做网站怎么赚钱广告
  • 网站建设哪家好公司跨境电商展会2023
  • 设计大神云集的网站是南通市 网站设计
  • 心理咨询网站模板企业画册封面设计
  • 做网站 南京网站建设的重难点分析
  • 深圳做网站980移动网站开发语言
  • 网站评论怎么做seo关键词优化方法
  • 市级部门网站建设自评报告网站优化文章怎么做
  • 可不可以异地建设网站学做网站培训班要多少钱
  • 茌平网站建设公司免费的云服务器有哪些
  • 手机网站单页面铜陵网站制作公司
  • 网站logo怎么做才清晰千库网官网首页登录
  • 山西省建设银行网站首页长沙网站建设制作
  • 襄阳市做网站 优帮云百度搜索次数统计