方法一:使用构造器实例化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的三种方式:的更多相关文章

  1. Spring实例化Bean的三种方式及Bean的类型

    1.使用类构造器实例化  [默认的类构造器] <bean id=“orderService" class="cn.itcast.OrderServiceBean"/ ...

  2. Spring 实例化bean的三种方式

    第一种方法:直接配置Bean <bena id="所需要实例化的一个实例名称" class="包名.类名"/> 例如: 配置文件中的bean.XML ...

  3. spring实例化bean的三种方式

    公共使用的实体

  4. Spring学习之实例化bean的三种方式

    实例化bean的三种方式 构造器实例化bean Person.java public class Person { private String name; private Integer age; ...

  5. spring创建bean的三种方式

    spring创建bean的三种方式: 1通过构造方法创建bean(最常用) 1.1 spring默认会通过无参构造方法来创建bean,如果xml文件是这样配置,则实体类中必须要有无参构造方法,无参构造 ...

  6. Spring装配Bean的三种方式+导入和混合配置

    目录 Spring IoC与bean 基于XML的显式装配 xml配置的基本结构 bean实例的三种创建方式 依赖注入的两种方式 构造器注入方式 setter方法注入方式 利用命名空间简化xml 基于 ...

  7. spring 装配bean的三种方式

    这段时间在学习Spring,依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 什么是依赖注入呢?也可以称为控制反转,简单的来说,一般完成稍微 ...

  8. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring实例化Bean的三种方法

    在面向对象的程序中,要想调用某个类的成员方法,就需要先实例化该类的对象.在 Spring 中,实例化 Bean 有三种方式,分别是构造器实例化.静态工厂方式实例化和实例工厂方式实例化. 构造器实例化 ...

  9. Spring实例化bean的几种方式

    一,通过constructor实例化bean Spring可以实例化各种类型的类,不要求必须是JavaBean类型的类.在XML中配置类如下: <bean id="exampleBea ...

随机推荐

  1. Javascript获取不重复的随机数值

    /** * 获取不重复随机数 * @param integer start 随机数最小值 * @param integer end 随机数最大值 * @param integer size 随机数获取 ...

  2. HDU 5845 Best Division

    $dp$,字典树. $dp$递推式很容易知道.dp[i]=max{dp[j]+1} a[j]^..^a[i]<=X,并且$[j,i]$长度不能超过$L$. 但是暴力来复杂度极高,所以需要用字典树 ...

  3. Java Lambda表达式入门[转]

    原文链接: Start Using Java Lambda Expressions http://blog.csdn.net/renfufei/article/details/24600507 下载示 ...

  4. 4、mybatis动态sql+struts2(通配符+全局配置+分页)

    1.创建userinfo.sql数据库脚本 create table USERINFO ( id NUMBER not null, uname ), password ), age NUMBER ) ...

  5. Java的I/O总结

    概念:Java语言中数据流是接收和发送数据的管道.流是一位单项的. 流的分类: 按照字节字符:InputStream和OutputStream是字节输入输出流的抽象父类.Reader和Writer是字 ...

  6. 实现简单的手写涂鸦板(demo源码)

    在一些软件系统中,需要用到手写涂鸦的功能,然后可以将涂鸦的结果保存为图片,并可以将"真迹"通过网络发送给对方.这种手写涂鸦功能是如何实现的了?最直接的,我们可以使用Windows提 ...

  7. wpf 透明效果 需要DwmApi.dll文件,然后定义一个函数去画Aero区域,从而实现整个窗口的Aero化。

    private void ExtendAeroGlass(Window window) { try { // 为WPF程序获取窗口句柄 IntPtr mainWindowPtr = new Windo ...

  8. Android JNI的使用浅析

    介绍JNI的好文章: http://blog.csdn.net/yuanzeyao/article/details/42418977 JNI技术对于多java开发的朋友相信并不陌生,即(java na ...

  9. ubuntu下的ssh工具gstm

    (转自:http://www.nenew.net/ubuntu-ssh-gstm.html) 首先安装: sudo apt-get install gstm 就可以安装,当然你也可以到http://s ...

  10. ios日期时间

    //1.获取当前时间 -(NSString*)getCurrentTime { NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; ...