首页 > 其他分享 >Spring 创建bean的几种方式

Spring 创建bean的几种方式

时间:2022-09-04 00:01:25浏览次数:86  
标签:创建 几种 bean User Spring 工厂 public user

Spring 创建bean的几种方式

 

在XML配置文件中,通过bean标签创建bean,然后再通过spring容器进行管理

创建xml配置文件定义bean

一、通过构造函数创建

复制代码
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
5 
6     <bean id="User" class="com.example.springioc.User"/>
7 </beans>
复制代码

 创建bean类

1 public class User {
2     public void test(){
3         System.out.println("我是bean");
4     }
5 }

通过创建容器对象来读取配置文件,这部分代码与后面的代码一样。

ApplicationContext context = new ClassPathXmlApplicationContext("appContext.xml");
        User user = (User) context.getBean("User");
        user.test();

二、通过静态工厂创建

创建静态工厂

复制代码
public class UserFactory {
    private static final User user = new User();
    public static User getUser(){
        return user;
    }
}
复制代码

创建工厂bean,这里的factory-method就是获取User的对象的静态方法

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/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">

    <bean id="UserFactory" class="com.example.springioc.UserFactory" factory-method="getUser"/>
</beans>
复制代码

三、通过实例工厂创建

 使用实例方法创建对象

复制代码
1 public class UserFactory {
2     private static  User user = new User();
3     public  User getUser(){
4         return user;
5     }
6 }
复制代码

 XML创建工厂bean。然后调用工厂非静态方法创建新的bean

复制代码
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
5 
6     <bean id="UserFactory" class="com.example.springioc.UserFactory" />
7     <bean id="User" factory-bean="UserFactory" factory-method="getUser"></bean>
8 </beans>
复制代码

标签:创建,几种,bean,User,Spring,工厂,public,user
From: https://www.cnblogs.com/pengshuai1014/p/16654008.html

相关文章

  • SpringCloud简介
    一、SpringCloud是什么?SpringCloud最擅长的就是集成,把其他框架拿过来集成到自己的项目中。SpringCloud也是一样,它将现在非常流行的一些技术融合到了一起,实现了诸如:服务发......
  • SpringCloud 使用 Hystrix 实现【服务端】降级
    Hystrix是Netflix公司提供的一个开源免费组件,主要用于降级熔断服务调用,防止系统出现级联失败(也就是通常所说的雪崩)。我们在实际开发中,需要在服务端和客户端都有降级措施......
  • spring坐标
    <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.5.RELEAS......
  • SpringMVC学习笔记(四)——REST风格
    1.什么是REST RESTful(REST风格)是一种当前比较流行的互联网软件架构模式,它充分并正确地利用HTTP协议的特性,为我们规定了一套统一的资源获取方式,以实现不同终端之间(客......
  • SpringMVC学习笔记(三)——请求转发与重定向
    1.请求转发 我们可以在控制器方法指定逻辑视图名(ViewName)时,使用“forward:”关键字进行请求转发操作。当控制器方法中所设置的逻辑视图名称以“forward:”为前缀时,该逻......
  • IDEA设置springBoot启动类快捷键
    publicstaticvoidmain(String[]args){SpringApplication.run($name$.class,args);}......
  • spring中@Transactional注解的作用,使用场景举例
    一,spring中管理事务一般使用@Transactional注解,下面对@Transactional使用的各个场景做一个列举,尽可能的将所有场景罗列出来1,场景一,最常见的用法,在方法上使用@Transactio......
  • linux中快速清空文件内容的几种方法
    linux中快速清空文件内容的几种方法-Leone--博客园 https://www.cnblogs.com/doseoer/p/5966488.html这篇文章主要介绍了linux中快速清空文件内容的几种方法,需要的......
  • Springboot2.x 使用 nacos 实现配置管理
    参考https://nacos.io/zh-cn/https://blog.csdn.net/weixin_43871678/article/details/121628460环境环境版本操作windows10JDK11Springboot2.......
  • 自学Spring(二)
    注解开发:  注解开发之中的依赖注入——自动装配     @Autowired   直接取消注入的入口。一个注解搞定。    在@Autowired下面加一个 ......