Spring-Bean创建对象的步骤方式详解
1.通过无参构造函数创建(默认)
2.通过有参构造创建
1.constructor 的index赋值
<bean id="user" class="com.c.pojo.user"> <constructor-arg index= 0 value=" "> </bean>
2.constructor 的 type 方式:
<bean id="user" class="com.c.pojo.user"> <constructor-arg type="java.lang.String " value=" "> </bean>
3.constructor 的name方式:
<bean id="user" class="com.c.pojo.user"> <constructor-arg name="name" value="123"/> //name 变量名 </bean>
3. Spring 在读取Bean配置文件XML的时候就开始创建了(默认)内存只有id一份实例。
实例补充
通过工厂类获得实例
//工厂类实现指定接口并且实现接口中的三个抽象方法:
public class ConnectionFactory implements FactoryBean<Connection>{
private String driver;
private String url;
private String username;
private String password;
@Override
public Connection getObject() throws Exception {
Class.forName(driver);
Connection conn =
DriverManager.getConnection(url,username,password);
return conn;
}
@Override
public boolean isSingleton() {
return false;
}
@Override
public Class<Connection> getObjectType() {
return Connection.class;
}
set/get
....
}
以上就是我们小编结合相关内容整理的,希望能够帮助到大家。
相关推荐
-
详解Spring-bean的循环依赖以及解决方式
本文主要是分析Spring bean的循环依赖,以及Spring的解决方式. 通过这种解决方式,我们可以应用在我们实际开发项目中. 1. 什么是循环依赖? 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环.比如A依赖于B,B依赖于C,C又依赖于A.如下图: 注意,这里不是函数的循环调用,是对象的相互依赖关系.循环调用其实就是一个死循环,除非有终结条件. Spring中循环依赖场景有: (1)构造器的循环依赖 (2)field属性的循环依赖. 循环依赖的产生和解
-
Spring bean 四种注入方式详解
目录 一.Set方式注入 pojo层: 1.xml 文件 test测试 二.构造函数方式注入 pojo层 2.xml文件 test测试 三.注解注入 pojo层 3.xml文件 test测试 四.JavaConfig 方式注入 pojo层 JavaConfig 类 xml文件 扫描包 测试: 五.Service层注入详解 service serviceImpl xml配置文件 总结 一.Set方式注入 pojo层: /** * @Author: crush * @Date: 2021-06-17
-
Spring Bean常用依赖注入方式详解
一般而言,Spring的依赖注入有三种:构造器注入.setter注入以及接口注入.本文主要讲构造器注入与setter注入. 1.构造器注入 为了让Spring完成构造器注入,我们需要去描述具体的类.构造方法并设置构造方法的对应参数. 代码如下: public class Role { private Long id; private String roleName; private String note; public Long getId() { return id; } public vo
-
Spring Bean三种注入方式详解
在Spring容器中为一个bean配置依赖注入有三种方式: 使用属性的setter方法注入 这是最常用的方式: 使用构造器注入: 使用Filed注入(用于注解方式). Field注入是最常见的一种方式,可以采用 @Autowired 对Bean类的接口进行初始化,代码如下 @ContextConfiguration({"/META-INF/spring/amazing-base.xml"}) @RunWith(SpringJUnit4ClassRunner.class) public
-
Spring-Bean创建对象的步骤方式详解
1.通过无参构造函数创建(默认) 2.通过有参构造创建 1.constructor 的index赋值 <bean id="user" class="com.c.pojo.user"> <constructor-arg index= 0 value=" "> </bean> 2.constructor 的 type 方式: <bean id="user" class="com.
-
Spring为IOC容器注入Bean的五种方式详解
这篇文章主要介绍了Spring为IOC容器注入Bean的五种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一 @Import导入组件,id默认是组件的全类名 //类中组件统一设置.满足当前条件,这个类中配置的所有bean注册才能生效: @Conditional({WindowsCondition.class}) @Configuration @Import({Color.class,Red.class,MyImportSelector
-
Spring实例化bean的四种方式详解
目录 一.bean实例化——构造方法(常用) 二.bean实例化——静态工厂(了解) 三.bean实例化——实例工厂(了解) 四.bean实例化——FactoryBean(实用) 一.bean实例化——构造方法(常用) bean本质上就是对象,创建bean使用构造方法完成 BookDao接口: public interface BookDao { public void save(); } BookDaoImpl实现类,利用构造方式提供可访问的构造方法,输出相应字符串: import com.i
-
Java spring的三种注入方式详解流程
目录 设置Spring的作用域 自动注入 @Primary Qualifier @ComponentScan不同的配置对性能的影响 懒加载 三种注入方式 字段注入(IDEA 会提示不推荐) 字段注入的bean类外部不可见 循环依赖问题 构造器注入(官方推荐) set方法注入 设置Spring的作用域 或者使用枚举值设置 单例和多里使用场景 自动注入 @Primary 一个接口有多个实现被spring管理吗,在依赖注入式,spring会不知道注入哪个实现类就会抛出NoUniqueBeanDefin
-
Spring创建Bean的6种方式详解
前言 本文讲解了在Spring 应用中创建Bean的多种方式,包括自动创建,以及手动创建注入方式,实际开发中可以根据业务场景选择合适的方案. 方式1: 使用Spring XML方式配置,该方式用于在纯Spring 应用中,适用于简单的小应用,当应用变得复杂,将会导致XMl配置文件膨胀 ,不利于对象管理. <bean id="xxxx" class="xxxx.xxxx"/> 方式2: 使用@Component,@Service,@Controler,@R
-
Spring中实例化bean的四种方式详解
前言 在介绍Bean的实例化的方式之前,我们首先需要介绍一下什么是Bean,以及Bean的配置方式. 如果把Spring看作一个大型工厂,那么Spring容器中的Bean就是该工厂的产品.要想使用Spring工厂生产和管理Bean,就需要在配置文件中指明需要哪些Bean,以及需要使用何种方式将这些Bean装配到一起. Spring容器支持两种格式的配置文件,分别为Properties文件格式和xml文件格式,而在实际的开发当中,最常使用的额是xml文件格式,因此在如下的讲解中,我们以xml文件格
-
Spring Bean是如何初始化的详解
目录 前言 三级缓存 doGetBean createBean doCreateBean instantiateBean instantiate instantiateClass 注入 AutowiredAnnotationBeanPostProcessor分析 postProcessProperties 如何实现bean注入的 总结 前言 做Java都有很多年了,一直有一个疑惑: Spring 如何初始化bean,怎么调用反射实例化对象的,自己动手来解除这个疑惑. 过去我认为spring be
随机推荐
- Java8新特性Stream流实例详解
- CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
- net命令全集
- javascript中this用法实例详解
- js监听输入框值的即时变化onpropertychange、oninput
- Navicat异地自动备份MySQL方法详解(图文)
- 解决MySQL Sending data导致查询很慢问题的方法与思路
- mysql insert语句操作实例讲解
- 解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)
- JQuery拖动表头边框线调整表格列宽效果代码
- java jvm的知识详细介绍
- Android短信验证码自动填充功能
- 2018年最值得一读的互联网书单
- php实现算术验证码功能
- centos7利用yum安装mysql 8.0.12
- C#控制台实现飞行棋游戏
- python2.7的flask框架之引用js&css等静态文件的实现方法
- 好玩的vbs小程序之关机功能
- PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
- 使用vue 国际化i18n 实现多实现语言切换功能
