http://mvnrepository.com
,搜索springwebmvc
,在结果中找到的Group
是org.springframework
,选择版本,并且复制xml代码<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
<!-- id: 自定义名称
class : 需要spring管理的类的路径
-->
<bean id="date" class="java.util.Date"></bean>
import java.util.Date;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDemo1 {
public static void main(String[] args) {
//spring的配置文件
String conf="applicationContext.xml";
//获取spring容器
AbstractApplicationContext context=new ClassPathXmlApplicationContext(conf);
//获取配置文件中指定的bean,参数是自定义的id
Date date=(Date) context.getBean("date");
//打印出日期,对象创建成功
System.out.println(date);
context.close();
}
}
java.util.Calendar
的对象factory-method
: 这个属性指定的静态工厂方法 <!-- 通过静态工厂方法创建对象
id : 自定义的名称
class: 类的全路径
factory-method : 静态工厂方法
-->
<bean id="calendar" class="java.util.Calendar" factory-method="getInstance"></bean>
@Test
public void testStatice() {
// spring的配置文件
String conf = "applicationContext.xml";
// 获取spring容器
AbstractApplicationContext context = new ClassPathXmlApplicationContext(
conf);
// 获取配置文件中指定的bean,参数是自定义的id
Calendar calendar=(Calendar) context.getBean("calendar");
// 打印出日期,对象创建成功
System.out.println(calendar.getTime());
context.close();
}
public class Phone {
public String name;
public Phone(String name) {
this.name=name;
}
}
public class PhoneFactory {
public Phone getPhone() {
return new Phone("小米6");
}
}
factory-bean
: 是工厂类的idfactory-method
: 工厂类获取Phone对象的非静态的方法<!-- 配置工厂类 -->
<bean id="phoneFactory" class="cn.tedu.spring.beans.PhoneFactory"></bean>
<!-- 配置Phone类的对象
factory-bean : 是工厂类的id
factory-method : 工厂类获取Phone对象的非静态的方法
-->
<bean id="phone" class="cn.tedu.spring.beans.Phone" factory-bean="phoneFactory" factory-method="getPhone"></bean>
Scope
)<bean>
节点添加scope
属性即可调整,当该属性为singleton
时是单例的,当属性为prototype
为非单例的 <!-- id: 自定义名称
class : 需要spring管理的类的路径
-->
<bean id="date" class="java.util.Date" scope="prototype"></bean>
lazy-init
取值我true
的时候,就会使用懒加载(懒汉式)<bean id="date" class="java.util.Date" scope="singleton" lazy-init="true"></bean>
lazy-init
来延迟初始化,使用懒加载即可,当lazy-init
为true的时候便是延迟加载<bean id="date" class="java.util.Date" lazy-init="true"></bean>
<beans>
根节点中添加一个default-lazy-init
,可以为容器中的所有bean
设置为懒加载<beans default-lazy-init="true"></beans>
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。