2026/4/6 2:20:33
网站建设
项目流程
连云港市网站优化,珠海哪家做企业网站公司好,博宇娱乐网站建设,做网站费用会计分录怎么做目录 1.IOC和DI的概念
2.属性的set方法注入值
3.属性的构造方法注入值
4.数组#xff0c;集合(List,Set,Map)#xff0c;Properties 等的注入 1.IOC和DI的概念
IOC#xff1a;InverseofControl#xff0c;控制反转#xff0c;将对象的创建权反转给Spring。
DI#x…目录1.IOC和DI的概念2.属性的set方法注入值3.属性的构造方法注入值4.数组集合(List,Set,Map)Properties 等的注入1.IOC和DI的概念IOCInverseofControl控制反转将对象的创建权反转给Spring。DIDependencyInjection依赖注入在Spring框架负责创建Bean对象时 动态的将依赖对象注入到Bean组件中。2.属性的set方法注入值编写持久层OrderDao及其实现类package com.qcby.dao.Impl; import com.qcby.dao.OrderDao; public class OrderDaoImpl implements OrderDao { Override public void saveOrder() { System.out.println(持久层保存订单........); } } package com.qcby.dao; public interface OrderDao { void saveOrder(); }业务层OrderService及其实现类package com.qcby.service.Impl; import com.qcby.dao.OrderDao; import com.qcby.service.OrderService; public class OrderServiceImpl implements OrderService { //提供该属性的set方法IOC容器底层通过属性的set方法注入值 private OrderDao orderDao; public void setOrderDao(OrderDao orderDao) { this.orderDao orderDao; } //消息 private String msg; //年龄 private int age; public void setMsg(String msg) { this.msg msg; } public void setAge(int age) { this.age age; } Override public void saveOrder() { System.out.println(业务层保存订单msg - age); orderDao.saveOrder(); } } package com.qcby.service; public interface OrderService { void saveOrder(); }测试方法:/** * 测试DI注入 */ Test public void testDI(){ ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml); //获取到了OderService的Bean这个Bean里面的信息在配置文件里面配置好了 OrderService orderService (OrderService) context.getBean(os); orderService.saveOrder(); }运行流程分析Spring读取配置文件后会首先创建OrderDaoImpl以od为键存入容器bean idod classcom.qcby.dao.Impl.OrderDaoImpl/然后创建OrderServiceImplbean idos classcom.qcby.service.Impl.OrderServiceImpl !--找到OrderDao的setOrderDao方法把这个bean注入到os里面-- property nameorderDao refod/ !--给OrderServiceImpl赋值也是通过set方法赋值-- property namemsg value你好/ property nameage value19/ /bean通过无参构造方法创建OrderServiceImpl实例再通过setOrderDao、setMsg和setAge方法来获取值也就是依赖注入测试代码首先读取配置文件(第一行代码)获取到了orderServiceImpl这个Bean(第二行代码)最后调用对象的saveOrder方法。3.属性的构造方法注入值新建Car类package com.qcby.eneity; public class Car { //名称 private String name; //金额 private String money; public Car() { } public Car(String name, String money) { this.name name; this.money money; } Override public String toString() { return Car{ name name \ , money money \ }; } }在配置文件当中配置!--构造方法注入值-- bean idcar classcom.qcby.eneity.Car constructor-arg namename value福特/ constructor-arg namemoney value1000000/ /bean测试方法/** * 测试构造方法注入 */ Test public void testConstructor(){ ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml); Car car (Car) context.getBean(car); System.out.println(car); }运行constructor-arg是构造器参数用于构造方法注入name是参数名字value是参数的值4.数组集合(List,Set,Map)Properties 等的注入新建CollectionBean类package com.qcby.eneity; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Properties; public class CollectionBean { //数组 private String[]strs; public void setStrs(String[]strs){ this.strsstrs; } private ListString list; public void setList(ListStringlist){ this.listlist; } private MapString,String map; public void setMap(MapString,Stringmap){ this.mapmap; } private Properties properties; public void setProperties(Properties properties){ this.propertiesproperties; } Override public String toString(){ returnCollectionBean{ strs Arrays.toString(strs) ,listlist ,mapmap ,propertiesproperties }; } }配置Bean!--给集合属性注入值-- bean idcollectionBean classcom.qcby.eneity.CollectionBean property namestrs array value美美/value value凤凤/value /array /property property namelist list value熊大/value value熊二/value /list /property property namemap map entry keyaaa value老王/ entry keybbb value小王/ /map /property property nameproperties props prop keyusernameroot/prop prop keypassword123456/prop /props /property /bean测试代码/** * 引用类型的注入 */ Test public void testReferenceType(){ ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml); CollectionBean collectionBean (CollectionBean) context.getBean(collectionBean); System.out.println(collectionBean); }结果