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

盐城市城南建设局网站大连市招标网公示

盐城市城南建设局网站,大连市招标网公示,wordpress自定义seo标题,竞价推广返点开户5#xff0c;DI相关内容 前面我们已经完成了bean相关操作的讲解#xff0c;接下来就进入第二个大的模块DI依赖注入#xff0c;首先来介绍下Spring中有哪些注入方式? 我们先来思考 向一个类中传递数据的方式有几种? 普通方法(set方法)构造方法 依赖注入描述了在容器中建…5DI相关内容 前面我们已经完成了bean相关操作的讲解接下来就进入第二个大的模块DI依赖注入首先来介绍下Spring中有哪些注入方式? 我们先来思考 向一个类中传递数据的方式有几种? 普通方法(set方法)构造方法 依赖注入描述了在容器中建立bean与bean之间的依赖关系的过程如果bean运行需要的是数字或字符串呢? 引用类型简单类型(基本数据类型与String) Spring就是基于上面这些知识点为我们提供了两种注入方式分别是: setter注入 简单类型引用类型 构造器注入 简单类型引用类型 依赖注入的方式已经介绍完接下来挨个学习下: 5.1 setter注入 对于setter方式注入引用类型的方式之前已经学习过快速回顾下: 在bean中定义引用类型属性并提供可访问的set方法 public class BookServiceImpl implements BookService {private BookDao bookDao;public void setBookDao(BookDao bookDao) {this.bookDao bookDao;} }配置中使用property标签ref属性注入引用类型对象 bean idbookService classcom.itheima.service.impl.BookServiceImplproperty namebookDao refbookDao/ /beanbean idbookDao classcom.itheima.dao.imipl.BookDaoImpl/5.1.1 环境准备 为了更好的学习下面内容我们依旧准备一个新环境: 创建一个Maven项目pom.xml添加依赖resources下添加spring的配置文件 这些步骤和前面的都一致大家可以快速的拷贝即可最终项目的结构如下: (1)项目中添加BookDao、BookDaoImpl、UserDao、UserDaoImpl、BookService和BookServiceImpl类 public interface BookDao {public void save(); }public class BookDaoImpl implements BookDao {public void save() {System.out.println(book dao save ...);} } public interface UserDao {public void save(); } public class UserDaoImpl implements UserDao {public void save() {System.out.println(user dao save ...);} }public interface BookService {public void save(); }public class BookServiceImpl implements BookService{private BookDao bookDao;public void setBookDao(BookDao bookDao) {this.bookDao bookDao;}public void save() {System.out.println(book service save ...);bookDao.save();} }(2)resources下提供spring的配置文件 ?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 idbookDao classcom.itheima.dao.impl.BookDaoImpl/bean idbookService classcom.itheima.service.impl.BookServiceImplproperty namebookDao refbookDao//bean /beans(3)编写AppForDISet运行类加载Spring的IOC容器并从中获取对应的bean对象 public class AppForDISet {public static void main( String[] args ) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);BookService bookService (BookService) ctx.getBean(bookService);bookService.save();} }接下来在上面这个环境中来完成setter注入的学习: 5.1.2 注入引用数据类型 需求:在bookServiceImpl对象中注入userDao 1.在BookServiceImpl中声明userDao属性 2.为userDao属性提供setter方法 3.在配置文件中使用property标签注入 步骤1:声明属性并提供setter方法 在BookServiceImpl中声明userDao属性并提供setter方法 public class BookServiceImpl implements BookService{private BookDao bookDao;private UserDao userDao;public void setUserDao(UserDao userDao) {this.userDao userDao;}public void setBookDao(BookDao bookDao) {this.bookDao bookDao;}public void save() {System.out.println(book service save ...);bookDao.save();userDao.save();} }步骤2:配置文件中进行注入配置 在applicationContext.xml配置文件中使用property标签注入 ?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 idbookDao classcom.itheima.dao.impl.BookDaoImpl/bean iduserDao classcom.itheima.dao.impl.UserDaoImpl/bean idbookService classcom.itheima.service.impl.BookServiceImplproperty namebookDao refbookDao/property nameuserDao refuserDao//bean /beans步骤3:运行程序 运行AppForDISet类查看结果说明userDao已经成功注入。 5.1.3 注入简单数据类型 需求给BookDaoImpl注入一些简单数据类型的数据 参考引用数据类型的注入我们可以推出具体的步骤为: 1.在BookDaoImpl类中声明对应的简单数据类型的属性 2.为这些属性提供对应的setter方法 3.在applicationContext.xml中配置 思考: 引用类型使用的是property name ref/,简单数据类型还是使用ref么? ref是指向Spring的IOC容器中的另一个bean对象的对于简单数据类型没有对应的bean对象该如何配置? 步骤1:声明属性并提供setter方法 在BookDaoImpl类中声明对应的简单数据类型的属性,并提供对应的setter方法 public class BookDaoImpl implements BookDao {private String databaseName;private int connectionNum;public void setConnectionNum(int connectionNum) {this.connectionNum connectionNum;}public void setDatabaseName(String databaseName) {this.databaseName databaseName;}public void save() {System.out.println(book dao save ...databaseName,connectionNum);} }步骤2:配置文件中进行注入配置 在applicationContext.xml配置文件中使用property标签注入 ?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 idbookDao classcom.itheima.dao.impl.BookDaoImplproperty namedatabaseName valuemysql/property nameconnectionNum value10//beanbean iduserDao classcom.itheima.dao.impl.UserDaoImpl/bean idbookService classcom.itheima.service.impl.BookServiceImplproperty namebookDao refbookDao/property nameuserDao refuserDao//bean /beans说明: value:后面跟的是简单数据类型对于参数类型Spring在注入的时候会自动转换但是不能写成 property nameconnectionNum valueabc/这样的话spring在将abc转换成int类型的时候就会报错。 步骤3:运行程序 运行AppForDISet类查看结果说明userDao已经成功注入。 **注意:**两个property注入标签的顺序可以任意。 对于setter注入方式的基本使用就已经介绍完了 对于引用数据类型使用的是property name ref/对于简单数据类型使用的是property name value/ 5.2 构造器注入 5.2.1 环境准备 构造器注入也就是构造方法注入学习之前还是先准备下环境: 创建一个Maven项目pom.xml添加依赖resources下添加spring的配置文件 这些步骤和前面的都一致大家可以快速的拷贝即可最终项目的结构如下: (1)项目中添加BookDao、BookDaoImpl、UserDao、UserDaoImpl、BookService和BookServiceImpl类 public interface BookDao {public void save(); }public class BookDaoImpl implements BookDao {private String databaseName;private int connectionNum;public void save() {System.out.println(book dao save ...);} } public interface UserDao {public void save(); } public class UserDaoImpl implements UserDao {public void save() {System.out.println(user dao save ...);} }public interface BookService {public void save(); }public class BookServiceImpl implements BookService{private BookDao bookDao;public void setBookDao(BookDao bookDao) {this.bookDao bookDao;}public void save() {System.out.println(book service save ...);bookDao.save();} }(2)resources下提供spring的配置文件 ?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 idbookDao classcom.itheima.dao.impl.BookDaoImpl/bean idbookService classcom.itheima.service.impl.BookServiceImplproperty namebookDao refbookDao//bean /beans(3)编写AppForDIConstructor运行类加载Spring的IOC容器并从中获取对应的bean对象 public class AppForDIConstructor {public static void main( String[] args ) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);BookService bookService (BookService) ctx.getBean(bookService);bookService.save();} }5.2.2 构造器注入引用数据类型 接下来在上面这个环境中来完成构造器注入的学习: 需求将BookServiceImpl类中的bookDao修改成使用构造器的方式注入。 1.将bookDao的setter方法删除掉 2.添加带有bookDao参数的构造方法 3.在applicationContext.xml中配置 步骤1:删除setter方法并提供构造方法 在BookServiceImpl类中将bookDao的setter方法删除掉,并添加带有bookDao参数的构造方法 public class BookServiceImpl implements BookService{private BookDao bookDao;public BookServiceImpl(BookDao bookDao) {this.bookDao bookDao;}public void save() {System.out.println(book service save ...);bookDao.save();} }步骤2:配置文件中进行配置构造方式注入 在applicationContext.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.xsdbean idbookDao classcom.itheima.dao.impl.BookDaoImpl/bean idbookService classcom.itheima.service.impl.BookServiceImplconstructor-arg namebookDao refbookDao//bean /beans说明: 标签中 name属性对应的值为构造函数中方法形参的参数名必须要保持一致。 ref属性指向的是spring的IOC容器中其他bean对象。 步骤3运行程序 运行AppForDIConstructor类查看结果说明bookDao已经成功注入。 5.2.3 构造器注入多个引用数据类型 需求:在BookServiceImpl使用构造函数注入多个引用数据类型比如userDao 1.声明userDao属性 2.生成一个带有bookDao和userDao参数的构造函数 3.在applicationContext.xml中配置注入 步骤1:提供多个属性的构造函数 在BookServiceImpl声明userDao并提供多个参数的构造函数 public class BookServiceImpl implements BookService{private BookDao bookDao;private UserDao userDao;public BookServiceImpl(BookDao bookDao,UserDao userDao) {this.bookDao bookDao;this.userDao userDao;}public void save() {System.out.println(book service save ...);bookDao.save();userDao.save();} }步骤2:配置文件中配置多参数注入 在applicationContext.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.xsdbean idbookDao classcom.itheima.dao.impl.BookDaoImpl/bean iduserDao classcom.itheima.dao.impl.UserDaoImpl/bean idbookService classcom.itheima.service.impl.BookServiceImplconstructor-arg namebookDao refbookDao/constructor-arg nameuserDao refuserDao//bean /beans**说明:**这两个contructor-arg的配置顺序可以任意 步骤3:运行程序 运行AppForDIConstructor类查看结果说明userDao已经成功注入。 5.2.4 构造器注入多个简单数据类型 需求:在BookDaoImpl中使用构造函数注入databaseName和connectionNum两个参数。 参考引用数据类型的注入我们可以推出具体的步骤为: 1.提供一个包含这两个参数的构造方法 2.在applicationContext.xml中进行注入配置 步骤1:添加多个简单属性并提供构造方法 修改BookDaoImpl类添加构造方法 public class BookDaoImpl implements BookDao {private String databaseName;private int connectionNum;public BookDaoImpl(String databaseName, int connectionNum) {this.databaseName databaseName;this.connectionNum connectionNum;}public void save() {System.out.println(book dao save ...databaseName,connectionNum);} }步骤2:配置完成多个属性构造器注入 在applicationContext.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.xsdbean idbookDao classcom.itheima.dao.impl.BookDaoImplconstructor-arg namedatabaseName valuemysql/constructor-arg nameconnectionNum value666//beanbean iduserDao classcom.itheima.dao.impl.UserDaoImpl/bean idbookService classcom.itheima.service.impl.BookServiceImplconstructor-arg namebookDao refbookDao/constructor-arg nameuserDao refuserDao//bean /beans**说明:**这两个contructor-arg的配置顺序可以任意 步骤3:运行程序 运行AppForDIConstructor类查看结果 上面已经完成了构造函数注入的基本使用但是会存在一些问题: 当构造函数中方法的参数名发生变化后配置文件中的name属性也需要跟着变这两块存在紧耦合具体该如何解决? 在解决这个问题之前需要提前说明的是这个参数名发生变化的情况并不多所以上面的还是比较主流的配置方式下面介绍的大家都以了解为主。 方式一:删除name属性添加type属性按照类型注入 bean idbookDao classcom.itheima.dao.impl.BookDaoImplconstructor-arg typeint value10/constructor-arg typejava.lang.String valuemysql/ /bean这种方式可以解决构造函数形参名发生变化带来的耦合问题但是如果构造方法参数中有类型相同的参数这种方式就不太好实现了 方式二:删除type属性添加index属性按照索引下标注入下标从0开始 bean idbookDao classcom.itheima.dao.impl.BookDaoImplconstructor-arg index1 value100/constructor-arg index0 valuemysql/ /bean这种方式可以解决参数类型重复问题但是如果构造方法参数顺序发生变化后这种方式又带来了耦合问题 介绍完两种参数的注入方式具体我们该如何选择呢? 强制依赖使用构造器进行使用setter注入有概率不进行注入导致null对象出现 强制依赖指对象在创建的过程中必须要注入指定的参数 可选依赖使用setter注入进行灵活性强 可选依赖指对象在创建过程中注入的参数可有可无 Spring框架倡导使用构造器第三方框架内部大多数采用构造器注入的形式进行数据初始化相对严谨如果有必要可以两者同时使用使用构造器注入完成强制依赖的注入使用setter注入完成可选依赖的注入实际开发过程中还要根据实际情况分析如果受控对象没有提供setter方法就必须使用构造器注入自己开发的模块推荐使用setter注入 这节中主要讲解的是Spring的依赖注入的实现方式: setter注入 简单数据类型 bean ...property name value/ /bean引用数据类型 bean ...property name ref/ /bean构造器注入 简单数据类型 bean ...constructor-arg name index type value/ /bean引用数据类型 bean ...constructor-arg name index type ref/ /bean依赖注入的方式选择上 建议使用setter注入第三方技术根据情况选择 5.3 自动配置 前面花了大量的时间把Spring的注入去学习了下总结起来就一个字麻烦。 问:麻烦在哪? 答:配置文件的编写配置上。 问:有更简单方式么? 答:有自动配置 什么是自动配置以及如何实现自动配置就是接下来要学习的内容 5.3.1 什么是依赖自动装配? IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配 5.3.2 自动装配方式有哪些? 按类型常用按名称按构造方法不启用自动装配 5.3.3 准备下案例环境 创建一个Maven项目pom.xml添加依赖resources下添加spring的配置文件 这些步骤和前面的都一致大家可以快速的拷贝即可最终项目的结构如下: (1)项目中添加BookDao、BookDaoImpl、BookService和BookServiceImpl类 public interface BookDao {public void save(); }public class BookDaoImpl implements BookDao {private String databaseName;private int connectionNum;public void save() {System.out.println(book dao save ...);} } public interface BookService {public void save(); }public class BookServiceImpl implements BookService{private BookDao bookDao;public void setBookDao(BookDao bookDao) {this.bookDao bookDao;}public void save() {System.out.println(book service save ...);bookDao.save();} }(2)resources下提供spring的配置文件 ?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 idbookDao classcom.itheima.dao.impl.BookDaoImpl/bean idbookService classcom.itheima.service.impl.BookServiceImplproperty namebookDao refbookDao//bean /beans(3)编写AppForAutoware运行类加载Spring的IOC容器并从中获取对应的bean对象 public class AppForAutoware {public static void main( String[] args ) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);BookService bookService (BookService) ctx.getBean(bookService);bookService.save();} }5.3.4 完成自动装配的配置 接下来在上面这个环境中来完成自动装配的学习: 自动装配只需要修改applicationContext.xml配置文件即可: (1)将property标签删除 (2)在bean标签中添加autowire属性 首先来实现按照类型注入的配置 ?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 classcom.itheima.dao.impl.BookDaoImpl/!--autowire属性开启自动装配通常使用按类型装配--bean idbookService classcom.itheima.service.impl.BookServiceImpl autowirebyType//beans注意事项: 需要注入属性的类中对应属性的setter方法不能省略被注入的对象必须要被Spring的IOC容器管理按照类型在Spring的IOC容器中如果找到多个对象会报NoUniqueBeanDefinitionException 一个类型在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 classcom.itheima.dao.impl.BookDaoImpl/!--autowire属性开启自动装配通常使用按类型装配--bean idbookService classcom.itheima.service.impl.BookServiceImpl autowirebyName//beans注意事项: 按照名称注入中的名称指的是什么? bookDao是private修饰的外部类无法直接方法外部类只能通过属性的set方法进行访问对外部类来说setBookDao方法名去掉set后首字母小写是其属性名 为什么是去掉set首字母小写?这个规则是set方法生成的默认规则set方法的生成是把属性名首字母大写前面加set形成的方法名 所以按照名称注入其实是和对应的set方法有关但是如果按照标准起名称属性名和set对应的名是一致的 如果按照名称去找对应的bean对象找不到则注入Null 当某一个类型在IOC容器中有多个对象按照名称注入只找其指定名称对应的bean对象不会报错 两种方式介绍完后以后用的更多的是按照类型注入。 最后对于依赖注入需要注意一些其他的配置特征: 自动装配用于引用类型依赖注入不能对简单类型进行操作使用按类型装配时byType必须保障容器中相同类型的bean唯一推荐使用使用按名称装配时byName必须保障容器中具有指定名称的bean因变量名与配置耦合不推荐使用自动装配优先级低于setter注入与构造器注入同时出现时自动装配配置失效 5.4 集合注入 前面我们已经能完成引入数据类型和简单数据类型的注入但是还有一种数据类型集合集合中既可以装简单数据类型也可以装引用数据类型对于集合在Spring中该如何注入呢? 先来回顾下常见的集合类型有哪些? 数组ListSetMapProperties 针对不同的集合类型该如何实现注入呢? 5.4.1 环境准备 创建一个Maven项目pom.xml添加依赖resources下添加spring的配置文件applicationContext.xml 这些步骤和前面的都一致大家可以快速的拷贝即可最终项目的结构如下: (1)项目中添加添加BookDao、BookDaoImpl类 public interface BookDao {public void save(); }public class BookDaoImpl implements BookDao {public class BookDaoImpl implements BookDao {private int[] array;private ListString list;private SetString set;private MapString,String map;private Properties properties;public void save() {System.out.println(book dao save ...);System.out.println(遍历数组: Arrays.toString(array));System.out.println(遍历List list);System.out.println(遍历Set set);System.out.println(遍历Map map);System.out.println(遍历Properties properties);}//setter....方法省略自己使用工具生成 }(2)resources下提供spring的配置文件applicationContext.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.xsdbean idbookDao classcom.itheima.dao.impl.BookDaoImpl/ /beans(3)编写AppForDICollection运行类加载Spring的IOC容器并从中获取对应的bean对象 public class AppForDICollection {public static void main( String[] args ) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);BookDao bookDao (BookDao) ctx.getBean(bookDao);bookDao.save();} }接下来在上面这个环境中来完成集合注入的学习: 下面的所以配置方式都是在bookDao的bean标签中使用进行注入 ?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 idbookDao classcom.itheima.dao.impl.BookDaoImpl/bean /beans5.4.2 注入数组类型数据 property namearrayarrayvalue100/valuevalue200/valuevalue300/value/array /property5.4.3 注入List类型数据 property namelistlistvalueitcast/valuevalueitheima/valuevalueboxuegu/valuevaluechuanzhihui/value/list /property5.4.4 注入Set类型数据 property namesetsetvalueitcast/valuevalueitheima/valuevalueboxuegu/valuevalueboxuegu/value/set /property5.4.5 注入Map类型数据 property namemapmapentry keycountry valuechina/entry keyprovince valuehenan/entry keycity valuekaifeng//map /property5.4.6 注入Properties类型数据 property namepropertiespropsprop keycountrychina/propprop keyprovincehenan/propprop keycitykaifeng/prop/props /property配置完成后运行下看结果: 说明 property标签表示setter方式注入构造方式注入constructor-arg标签内部也可以写array、list、set、map、props标签 List的底层也是通过数组实现的所以list和array标签是可以混用 chema/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” (3)编写AppForDICollection运行类加载Spring的IOC容器并从中获取对应的bean对象 public class AppForDICollection {public static void main( String[] args ) {ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);BookDao bookDao (BookDao) ctx.getBean(bookDao);bookDao.save();} }接下来在上面这个环境中来完成集合注入的学习: 下面的所以配置方式都是在bookDao的bean标签中使用进行注入 ?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 idbookDao classcom.itheima.dao.impl.BookDaoImpl/bean /beans5.4.2 注入数组类型数据 property namearrayarrayvalue100/valuevalue200/valuevalue300/value/array /property5.4.3 注入List类型数据 property namelistlistvalueitcast/valuevalueitheima/valuevalueboxuegu/valuevaluechuanzhihui/value/list /property5.4.4 注入Set类型数据 property namesetsetvalueitcast/valuevalueitheima/valuevalueboxuegu/valuevalueboxuegu/value/set /property5.4.5 注入Map类型数据 property namemapmapentry keycountry valuechina/entry keyprovince valuehenan/entry keycity valuekaifeng//map /property5.4.6 注入Properties类型数据 property namepropertiespropsprop keycountrychina/propprop keyprovincehenan/propprop keycitykaifeng/prop/props /property配置完成后运行下看结果: 说明 property标签表示setter方式注入构造方式注入constructor-arg标签内部也可以写array、list、set、map、props标签List的底层也是通过数组实现的所以list和array标签是可以混用集合中要添加引用类型只需要把value标签改成ref标签这种方式用的比较少
http://www.w-s-a.com/news/996834/

相关文章:

  • 长沙网站建设哪个公司好PHP amp MySQL网站建设宝典
  • 代码编辑器做热点什么网站好湛江网站建设哪家好
  • php网站开发概念网站开发岗位职责任职责格
  • asp 网站源码 下载西安自适应网站建设
  • 白领兼职做网站贵阳网站设计哪家好
  • 热水器网站建设 中企动力企业网站开发需要多钱
  • 北京市建设工程信息网交易网站静态网页模板免费下载网站
  • 福田欧曼服务站网站前台设计
  • 网站做系统叫什么软件吗注册域名需要实名认证吗
  • jsp网站开发教学视频ui设计风格
  • 注册网站建设开发怎么自己做导航网站
  • 设计做网站品牌咖啡主题网页界面设计
  • 个人网站制作总体设计宿迁房价2023年最新房价
  • 服装网站建设进度及实施过程马鞍山网站设计制作
  • 郑州网站优化顾问济宁网站制作
  • 网站开发简单吗网站引导页分为三个板块设计风格
  • 湖南做网站 在线磐石网络百度一下百度搜索
  • 现在建网站多少钱推广营销费
  • 联想企业网站建设的思路西安网站建设阳建
  • 网站内容 内链网站建设电话销售工作总结
  • 系统网站开发知名的摄影网站有哪些
  • 网站拍照的幕布扬中网站建设价位
  • 网站ie兼容性差西安小程序开发的公司
  • 上海网站建设培训app网站开发成本
  • 个人网站icp外贸网站开发 河南
  • 遵义建设网站无锡市规划建设局网站
  • 海外留学网站建设方案门户网站的发布特点
  • 网站建设不赚钱net112企业建站系统
  • 网站建设团队管理模板贵州省住房和城乡建设部网站
  • 曲沃网站建设网上学编程的有哪些比较好的网站