抚州市网站建设,网站后台更新 前台不显示,ppt模板 免费,郑州网络推广方法目录 IOC接口ApplicationContext 详解IOC操作Bean管理基于xml方式基于xml方式创建对象基于xml方式注入属性使用set方法进行注入通过有参数的构造进行注入p 名称空间注入#xff08;了解#xff09; 基于xml方式注入其他类型属性xml 注入数组类型属性 IOC接口
IOC思想基于IOC… 目录 IOC接口ApplicationContext 详解IOC操作Bean管理基于xml方式基于xml方式创建对象基于xml方式注入属性使用set方法进行注入通过有参数的构造进行注入p 名称空间注入了解 基于xml方式注入其他类型属性xml 注入数组类型属性 IOC接口
IOC思想基于IOC容器完成IOC容器底层就是对象工厂Spring提供IOC容器实现的两种方式 ApplicationContext BeanFactory接口的子接口提供更多更强大的功能一般由开发人员使用 BeanFactory IOC容器基本实现是Spring里面内部使用接口不提供开发人员进行使用BeanFactory 在加载配置文件的时候它不会把里面的对象创建它只会加载我们的配置文件当在获取的时候它才会创建对象。什么时候用的时候才开始创建对象ApplicationContext 在加载配置文件的时候就会把配置文件对象进行创建
ApplicationContext 详解 FileSystemXmlApplicationContext 配置文件为系统盘的文件ClassPathXmlApplicationContext 配置为类路径下的文件
IOC操作Bean管理
Bean管理指的是两个操作 ① Spring创建对象 Spring通过Xml解析再通过工厂模式来进行创建对象② Spring 注入属性 Spring可以使用类似于Set对象的操作对对象或者字注入值 Bean管理操作有两种方式 ①基于xml配置文件方式实现②基于注解方式实现
基于xml方式
基于xml方式创建对象 ① 在spring配置文件中使用bean标签标签里面添加对应属性就可以实现对象创建 ② 在bean标签有很多属性介绍常用的属性
id属性 获取对象中的唯一的标识class属性 类全路径包类路径name属性 name的作用与id一样name属性可以添加特殊符号 ③ 创建对象的时候默认也是执行无参的构造方法完成对象的创建
基于xml方式注入属性
DI : 依赖注入就是注入属性
使用set方法进行注入 在spring配置文件配置对象创建配置属性注入使用Set方式注入
通过有参数的构造进行注入 在spring配置文件配置对象创建配置属性注入使用有参数构造注入
p 名称空间注入了解
使用 p 名称空间注入可以简化基于 xml 配置方式
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns: phttp: //www. springframework. org/schema/p //添加 p 名称空间在配置文件中
http://www.springframework.org/schema/beans/spring-beans.xsd//进行属性注入在 bean 标签里面进行操作bean idbook classcom. atguigu. spring5.Book p:bname九阳神功
p: bauthor无名氏×/bean/beans基于xml方式注入其他类型属性
字面量
null 值
property nameaddressnull/
/property 属性值包含特殊符号
!--属性值包含特殊符号1 把进行转义 lt; gt;2 把带特殊符号内容写到 CDATA
--
property nameaddressvalue![CDATA[南京]]/value
/property注入属性-外部 bean 外部调用对象的方法 创建两个类 service 类和 dao 类在 service 调用 dao 里面的方法在 spring 配置文件中进行配置
public class UserService {//创建UserDao类型属性生成set方法private UserDao userDao;public void setUserDao(UserDao userDao) {this.userDao userDao;}public void add() {System.out.println(service add...............);userDao.update();}
}public class UserDao {public void update() {System.out.println(dao update...........);}
}通过springxml配置操作
?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 service和dao对象创建--bean iduserService classcom.atguigu.spring5.service.UserService!--注入userDao对象name属性类里面属性名称ref属性创建userDao对象bean标签id值--property nameuserDao refuserDaoImpl/property/beanbean iduserDaoImpl classcom.atguigu.spring5.dao.UserDaoImpl/bean
/beansTest
public void testBean1() {//1 加载spring配置文件ApplicationContext context new ClassPathXmlApplicationContext(bean2.xml);//2 获取配置创建的对象UserService userService context.getBean(userService, UserService.class);userService.add();}注入属性-内部 bean 内部属性包含对象
① 一对多关系部门和员工一个部门有多个员工一个员工属于一个部门部门是一员工是多 ②在实体类之间表示一对多关系员工表示所属部门使用对象类型属性进行表示
部门类
//部门类
public class Dept {private String dname;public void setDname(String dname) {this.dname dname;}Overridepublic String toString() {return Dept{ dname dname \ };}
}员工类
//员工类
public class Emp {private String ename;private String gender;//员工属于某一个部门使用对象形式表示private Dept dept;//生成dept的get方法public Dept getDept() {return dept;}public void setDept(Dept dept) {this.dept dept;}public void setEname(String ename) {this.ename ename;}public void setGender(String gender) {this.gender gender;}public void add() {System.out.println(ename::gender::dept);}
}
?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--bean idemp classcom.atguigu.spring5.bean.Emp!--设置两个普通属性--property nameename valuelucy/propertyproperty namegender value女/property!--设置对象类型属性--property namedeptbean iddept classcom.atguigu.spring5.bean.Deptproperty namedname value安保部/property/bean/property/bean
/beansTestpublic void testBean2() {//1 加载spring配置文件ApplicationContext context new ClassPathXmlApplicationContext(application.xml);//2 获取配置创建的对象Emp emp context.getBean(emp, Emp.class);emp.add();}注入属性-级联赋值 (都可以达到注入的作用)
第一种方法 直接赋值一个对象
!--级联赋值--
bean idemp classcom.atguigu.spring5.bean.Emp!--设置两个普通属性--property nameename valuelucy/propertyproperty namegender value女/property!--级联赋值--property namedept refdept/property
/bean
bean iddept classcom.atguigu.spring5.bean.Deptproperty namedname value财务部/property
/bean第二种方法 赋值里面的一个属性值 //生成dept的get方法
public Dept getDept(){
return dept:
}!--级联赋值--
bean idemp classcom.atguigu.spring5.bean.Emp!--设置两个普通属性--property nameename valuelucy/propertyproperty namegender value女/property!--级联赋值--property namedept refdept/propertyproperty namedept.dname value技术部/property
/bean
bean iddept classcom.atguigu.spring5.bean.Deptproperty namedname value财务部/property
/bean
xml 注入数组类型属性
注入数组类型属性 创建类定义数组、list、map、set 类型属性生成对应 set 方法
package com.tde.example.Entity;import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;public class Student {//1 数组类型属性private String[] courses;//2 list集合类型属性private ListString list;//3 map集合类型属性private MapString, String maps;//4 set集合类型属性private SetString sets;public void setSets(SetString sets) {this.sets sets;}public void setCourses(String[] courses) {this.courses courses;}public void setList(ListString list) {this.list list;}public void setMaps(MapString, String maps) {this.maps maps;}public void test() {System.out.println(Arrays.toString(courses));System.out.println(list);System.out.println(maps);System.out.println(sets);}
}?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 集合类型属性注入--bean idstu classcom.atguigu.spring5.collectiontype.Stu!--数组类型属性注入--property namecoursesarrayvaluejava课程/valuevalue数据库课程/value/array/property!--list类型属性注入--property namelistlistvalue张三/valuevalue小三/value/list/property!--map类型属性注入--property namemapsmapentry keyJAVA valuejava/entryentry keyPHP valuephp/entry/map/property!--set类型属性注入--property namesetssetvalueMySQL/valuevalueRedis/value/set/property/bean
/beans
Test
public void testCollection1() {ApplicationContext context new ClassPathXmlApplicationContext(bean5.xml);Stu stu context.getBean(stu, Stu.class);stu.test();
} 2. 在集合里面设置对象类型值
!--创建多个 course 对象--
bean idcourse1 classcom.atguigu.spring5.collectiontype.Courseproperty namecname valueSpring5 框架/property
/bean
bean idcourse2 classcom.atguigu.spring5.collectiontype.Courseproperty namecname valueMyBatis 框架/property
/bean
!--注入 list 集合类型值是对象--property namecourseListlistref beancourse1/refref beancourse2/ref/list
/property
//学生所学多门课程
private ListCourse courseList;
public void setCourseList(ListCourse courseList) {this.courseList courseList;
}把集合注入部分提取出来
在 spring 配置文件中引入名称空间 util使用 util 标签完成 list 集合注入提取
Book类
package com.atguigu.spring5.collectiontype;import java.util.List;public class Book {private ListString list;public void setList(ListString list) {this.list list;}public void test() {System.out.println(list);}
}?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:utilhttp://www.springframework.org/schema/utilxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd!--1 提取list集合类型属性注入--util:list idbookListvalue易筋经/valuevalue九阴真经/valuevalue九阳神功/value/util:list!--2 提取list集合类型属性注入使用--bean idbook classcom.atguigu.spring5.collectiontype.Bookproperty namelist refbookList/property/bean
/beansTest
public void testCollection2() {ApplicationContext context new ClassPathXmlApplicationContext(bean6.xml);Book book1 context.getBean(book, Book.class);Book book2 context.getBean(book, Book.class);book1.test();book2.test();System.out.println(book1);System.out.println(book2);
}
文章转载自: http://www.morning.mhpkz.cn.gov.cn.mhpkz.cn http://www.morning.lwwnq.cn.gov.cn.lwwnq.cn http://www.morning.pqyms.cn.gov.cn.pqyms.cn http://www.morning.xgxbr.cn.gov.cn.xgxbr.cn http://www.morning.ldnrf.cn.gov.cn.ldnrf.cn http://www.morning.wxwall.com.gov.cn.wxwall.com http://www.morning.djbhz.cn.gov.cn.djbhz.cn http://www.morning.mrxgm.cn.gov.cn.mrxgm.cn http://www.morning.lmmyl.cn.gov.cn.lmmyl.cn http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn http://www.morning.dfndz.cn.gov.cn.dfndz.cn http://www.morning.hmktd.cn.gov.cn.hmktd.cn http://www.morning.dzrcj.cn.gov.cn.dzrcj.cn http://www.morning.grpfj.cn.gov.cn.grpfj.cn http://www.morning.rkxdp.cn.gov.cn.rkxdp.cn http://www.morning.rbjth.cn.gov.cn.rbjth.cn http://www.morning.chtnr.cn.gov.cn.chtnr.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.wqrdx.cn.gov.cn.wqrdx.cn http://www.morning.lwygd.cn.gov.cn.lwygd.cn http://www.morning.bpmth.cn.gov.cn.bpmth.cn http://www.morning.bnzjx.cn.gov.cn.bnzjx.cn http://www.morning.jthjr.cn.gov.cn.jthjr.cn http://www.morning.nzms.cn.gov.cn.nzms.cn http://www.morning.rsjf.cn.gov.cn.rsjf.cn http://www.morning.hjwxm.cn.gov.cn.hjwxm.cn http://www.morning.yrddl.cn.gov.cn.yrddl.cn http://www.morning.ktqtf.cn.gov.cn.ktqtf.cn http://www.morning.brtxg.cn.gov.cn.brtxg.cn http://www.morning.xkjrs.cn.gov.cn.xkjrs.cn http://www.morning.cwkcq.cn.gov.cn.cwkcq.cn http://www.morning.xldpm.cn.gov.cn.xldpm.cn http://www.morning.qhtlq.cn.gov.cn.qhtlq.cn http://www.morning.lhrwy.cn.gov.cn.lhrwy.cn http://www.morning.trqhd.cn.gov.cn.trqhd.cn http://www.morning.xrwbc.cn.gov.cn.xrwbc.cn http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn http://www.morning.qnjcx.cn.gov.cn.qnjcx.cn http://www.morning.grnhb.cn.gov.cn.grnhb.cn http://www.morning.mjbnp.cn.gov.cn.mjbnp.cn http://www.morning.lbrrn.cn.gov.cn.lbrrn.cn http://www.morning.gthgf.cn.gov.cn.gthgf.cn http://www.morning.bqdpy.cn.gov.cn.bqdpy.cn http://www.morning.ldzxf.cn.gov.cn.ldzxf.cn http://www.morning.fmkbk.cn.gov.cn.fmkbk.cn http://www.morning.qhydkj.com.gov.cn.qhydkj.com http://www.morning.tpbhf.cn.gov.cn.tpbhf.cn http://www.morning.zglrl.cn.gov.cn.zglrl.cn http://www.morning.qiyelm.com.gov.cn.qiyelm.com http://www.morning.yskhj.cn.gov.cn.yskhj.cn http://www.morning.mwbqk.cn.gov.cn.mwbqk.cn http://www.morning.kghss.cn.gov.cn.kghss.cn http://www.morning.ldspj.cn.gov.cn.ldspj.cn http://www.morning.spwm.cn.gov.cn.spwm.cn http://www.morning.lhztj.cn.gov.cn.lhztj.cn http://www.morning.tkqzr.cn.gov.cn.tkqzr.cn http://www.morning.wbllx.cn.gov.cn.wbllx.cn http://www.morning.kphyl.cn.gov.cn.kphyl.cn http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn http://www.morning.ntwxt.cn.gov.cn.ntwxt.cn http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn http://www.morning.vjdofuj.cn.gov.cn.vjdofuj.cn http://www.morning.nd-test.com.gov.cn.nd-test.com http://www.morning.qjdqj.cn.gov.cn.qjdqj.cn http://www.morning.dmsxd.cn.gov.cn.dmsxd.cn http://www.morning.kwcnf.cn.gov.cn.kwcnf.cn http://www.morning.zcmpk.cn.gov.cn.zcmpk.cn http://www.morning.xrhst.cn.gov.cn.xrhst.cn http://www.morning.mqbzk.cn.gov.cn.mqbzk.cn http://www.morning.080203.cn.gov.cn.080203.cn http://www.morning.kydrb.cn.gov.cn.kydrb.cn http://www.morning.srnhk.cn.gov.cn.srnhk.cn http://www.morning.hmfxl.cn.gov.cn.hmfxl.cn http://www.morning.qkpzq.cn.gov.cn.qkpzq.cn http://www.morning.pkggl.cn.gov.cn.pkggl.cn http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn http://www.morning.tlbhq.cn.gov.cn.tlbhq.cn http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn http://www.morning.psxcr.cn.gov.cn.psxcr.cn