spring工厂方法配置bean及spEl
来源:互联网 发布:公交卡套淘宝 编辑:程序博客网 时间:2024/05/17 03:51
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 通过静态工厂方法来配置Bean,注意不是配置静态工厂方法实例,而是配置bean实例--> <bean id="car1" class="com.dasenlin.test.springmodel.factory.StaticCarFactory" factory-method="getCar"> <constructor-arg value="audi"></constructor-arg> </bean> <!-- 实例工厂的方法 --> <bean id="carFactory" class="com.dasenlin.test.springmodel.factory.InstanceCarFactory"></bean> <bean id="car2" factory-bean="carFactory" factory-method="getCar"> <constructor-arg value="audi"></constructor-arg> </bean></beans>
java部分及测试(静态化获取值部分)
package com.dasenlin.test.springmodel.factory;import java.util.HashMap;import java.util.Map;public class StaticCarFactory { private static Map<String,Car> cars =new HashMap<String,Car>(); static{ cars.put("audi", new Car("audi","shanghai",100000)); cars.put("Fute", new Car("fute","beijing",30000)); } public static Car getCar(String name){ return cars.get(name); }}
实例化获取值部分
package com.dasenlin.test.springmodel.factory;import java.util.HashMap;import java.util.Map;public class InstanceCarFactory { private Map<String,Car> cars=null; public InstanceCarFactory(){ cars = new HashMap<String, Car>(); cars.put("audi", new Car("audi","shanghai",300000)); cars.put("fute", new Car("fute","beijing",200000)); } public Car getCar(String name){ return cars.get(name); }}
car实例
package com.dasenlin.test.springmodel.factory;/** *构造方法注入 */public class Car { private String brand; private String company; private int price; private double maxSpeed; public Car(String brand, String company, int price) { super(); this.brand = brand; this.company = company; this.price = price; } public Car(String brand, String company, double maxSpeed) { super(); this.brand = brand; this.company = company; this.maxSpeed = maxSpeed; } public double getMaxSpeed() { return maxSpeed; } public void setMaxSpeed(double maxSpeed) { this.maxSpeed = maxSpeed; } @Override public String toString() { return "Car [brand=" + brand + ", company=" + company + ", price=" + price + ", maxSpeed=" + maxSpeed + "]"; }}
以及spring默认的单例模式
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 使用bean的scope 属性来配置bean的作用域 singleton:默认值,容器初始化创建一个bean,单利的 prototype:原型的,容器初始化时不创建bean的实例,而是在每次请求的时候创建一个新的bean--> <bean id="car" class="com.dasenlin.test.springmodel.autowire.Car" scope="prototype"> <property name="brand" value="Audi"></property> <property name="price" value="3000000"></property> </bean></beans>
spEL表达式
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 使用spel为属性赋值一个字面值 --> <bean id="address" class="com.dasenlin.test.springmodel.spel.Address"> <property name="city" value="#{'BeiJing'}"></property> <property name="street" value="Wudaokou"></property> </bean> <!-- 使用spEl引用静态属性 --> <bean id="car" class="com.dasenlin.test.springmodel.spel.Car"> <property name="brand" value="Audi"></property> <property name="price" value="500000"></property> <property name="tyrePerimeter" value="#{T(java.lang.Math).PI * 80}"></property> </bean> <bean id="person" class="com.dasenlin.test.springmodel.spel.Person"> <!-- spEl来引用其他的Bean --> <property name="car" value="#{car}"></property> <!-- spEl来引用其他的Bean的属性 --> <property name="city" value="#{address.city}"></property> <property name="info" value="#{car.price >300000 ? '金领':'白领'}"></property> <property name="name" value="Tom"></property> </bean> <bean id="carlife" class="com.dasenlin.test.springmodel.spelcon.Car" init-method="instance" destroy-method="destory"> </bean></beans>
阅读全文
0 0
- spring工厂方法配置bean及spEl
- Spring -- spEL&Bean的生命周期&工厂方法配置Bean
- Spring-Bean配置-SpEL
- spring 7 bean配置--spEL
- spring 工厂方法配置bean
- spring 通过工厂方法配置Bean
- Spring-10:通过工厂方法配置Bean
- spring中通过工厂方法配置Bean
- Spring通过工厂方法配置Bean
- 【Spring】使用工厂方法配置Bean
- Spring中通过工厂方法配置bean
- Spring通过工厂方法配置bean
- Spring通过工厂方法配置bean
- spring配置工厂bean
- spring ioc容器注入的集中方式,以及属性注入的集中依赖,继承,使用SPEL表达式,ioc容器的生命周期,bean的几种工厂方法配置方式,bean的自动装配
- spring(12) Spring的通过工厂方法配置Bean
- Spring配置bean的方法(工厂方法和Factorybean)
- Spring配置bean的方法(工厂方法和Factorybean)
- js下的sleep实现
- 2017年12月21日训练总结
- 小程序图片预览保存
- POJ
- 数据结构课程设计——学生信息管理系统
- spring工厂方法配置bean及spEl
- apache http与https配置
- 数据挖掘十大算法之一决策树算法C4.5
- Presto-[11]-Administration-Resource Groups
- VERO WorkXplore 3D(CAD数据浏览分析软件)v4.1.1下载附安装教程
- JAVA基础: HashSet\TreeSet
- 基于stm32 Systick 的简单定时器(裸机)-- 数组实现
- 基于STM32F769I-DISCO开发板实现Embedded Wizard界面应用入门指南
- dubbo分布式项目常见的异常及处理方法