Spring 实例化bean的三种方式:
方法一:使用构造器实例化bean
java代码:
package com.model; public class User { private String username; public User(){ } public User(String username){
this.setUsername(username);
} public void sayHello(){
System.out.println("hello ");
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
}
}
配置文件:
<!--方法一:使用构造器实例化bean -->
<bean id="user" class="com.model.User"></bean>
测试代码:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
//方法一:使用构造器实例化bean
User user = (User)applicationContext.getBean("user");
user.sayHello();
方法二:使用静态工厂方法实例化bean
java代码:
package com.test; public class StaticFactory { private static StaticFactory staticFactory = new StaticFactory();
public static StaticFactory getBean() {
return staticFactory;
} public void say() {
System.out.println("new Instance!");
}
}
配置文件:
<!--方法二:使用静态工厂方法实例化bean -->
<bean id="staticFactory" class="com.test.StaticFactory" factory-method="getBean"/>
测试代码:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"}); //方法二:使用静态工厂方法实例化bean
StaticFactory staticFactory = (StaticFactory)applicationContext.getBean("staticFactory");
staticFactory.say();
方法三:使用实例工厂方法实例化bean
java代码:
package com.test; import com.dao.UserDao;
import com.dao.impl.UserDaoImpl; public class InstanceBean {
private static UserDao userDaoA = new UserDaoImpl(); //该方法必须是非静态的
public UserDao getBeanInstance() {
return userDaoA;
} }
接口UserDao:
package com.dao; import com.model.User; public interface UserDao {
public void add(User user);
public void findByid(String id);
} 实现类UserDaoImpl:
package com.dao.impl; import com.dao.UserDao;
import com.model.User; public class UserDaoImpl implements UserDao { private String hello;
@Override
public void add(User user) {
System.out.println("方法三:qwqwqwq!!!");
} @Override
public void findByid(String id) { } public String getHello() {
return hello;
} public void setHello(String hello) {
this.hello = hello;
} }
配置文件:
<!--方法三:使用实例工厂方法实例化bean -->
<bean id="instanceBean" class="com.test.InstanceBean"/>
<bean id="userDaoA" factory-bean="instanceBean" factory-method="getBeanInstance"></bean>
测试代码:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
//方法三:使用实例工厂方法实例化bean
UserDao userDao = (UserDao)applicationContext.getBean("userDao");
String username = "pppp";
userDao.add(new User(username));
Spring 实例化bean的三种方式:的更多相关文章
- Spring实例化Bean的三种方式及Bean的类型
1.使用类构造器实例化 [默认的类构造器] <bean id=“orderService" class="cn.itcast.OrderServiceBean"/ ...
- Spring 实例化bean的三种方式
第一种方法:直接配置Bean <bena id="所需要实例化的一个实例名称" class="包名.类名"/> 例如: 配置文件中的bean.XML ...
- spring实例化bean的三种方式
公共使用的实体
- Spring学习之实例化bean的三种方式
实例化bean的三种方式 构造器实例化bean Person.java public class Person { private String name; private Integer age; ...
- spring创建bean的三种方式
spring创建bean的三种方式: 1通过构造方法创建bean(最常用) 1.1 spring默认会通过无参构造方法来创建bean,如果xml文件是这样配置,则实体类中必须要有无参构造方法,无参构造 ...
- Spring装配Bean的三种方式+导入和混合配置
目录 Spring IoC与bean 基于XML的显式装配 xml配置的基本结构 bean实例的三种创建方式 依赖注入的两种方式 构造器注入方式 setter方法注入方式 利用命名空间简化xml 基于 ...
- spring 装配bean的三种方式
这段时间在学习Spring,依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 什么是依赖注入呢?也可以称为控制反转,简单的来说,一般完成稍微 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring实例化Bean的三种方法
在面向对象的程序中,要想调用某个类的成员方法,就需要先实例化该类的对象.在 Spring 中,实例化 Bean 有三种方式,分别是构造器实例化.静态工厂方式实例化和实例工厂方式实例化. 构造器实例化 ...
- Spring实例化bean的几种方式
一,通过constructor实例化bean Spring可以实例化各种类型的类,不要求必须是JavaBean类型的类.在XML中配置类如下: <bean id="exampleBea ...
随机推荐
- html5权威指南:html全局属性
html全局属性:http://www.w3school.com.cn/tags/html_ref_standardattributes.asp 辅助记忆:(ail1,s2,c3,t3,d4)(acd ...
- 阮一峰:MVC、MVP和MVVM的图示
阮一峰:MVC.MVP和MVVM的图示:http://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
- CF 604B More Cowbell#贪心
(- ̄▽ ̄)-* //把最大单独放,然后第二大的和最小的放一起,第三大的和第二小的放一起 //由此类推,求最大值,即为盒的最小值 #include<iostream> #include&l ...
- 浙大pat 1037
1037. Magic Coupon (25) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The magi ...
- 安卓---高德地图API应用
说明:定位需要导入android_location 的jar包,如果没有会报错,这个官方网站好像找不到,这是我在网上找到的一个链接 http://download.csdn.net/detail/ra ...
- HUST 1352 Repetitions of Substrings(字符串)
Repetitions of Substrings Description The “repetitions” of a string S(whose length is n) is a maximu ...
- 正则表达式协助实现排序&&邮箱验证
/** 将IP地址按照字符串的自然顺序排序,只要让他们的每段的位数都是3就可以. 1.按照每一段需要的最多的0进行补齐,那么每一段就会至少保证有3位. 2.将每一段都保留3位.这样所有的ip地址都是每 ...
- 工具类 util.img
/** * @description transform emotion image url between code * @author x.radish * @pa ...
- TCP协议中的三次握手和四次挥手(图解)【转】
建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. [更新于2017.01.04 ]该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删 ...
- 网络传输中的三张表,MAC地址表、ARP缓存表以及路由表
一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的.在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据 ...