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
随机推荐
- asp.net System.Net.Mail 发送邮件
- Jmail组件发送邮件之绝对能用的函数
- javascript JSON操作入门实例
- JavaScript利用split函数按规定截取字符串(获取邮箱用户名)
- C++用new创建对象和不用new创建对象的区别解析
- 关于tomcat的server.xml里host节点配置的一些说明
- ASP.NET中MVC传递数据的几种形式总结
- 删除sqlserver数据库日志和没有日志的数据库恢复办法
- 简单介绍C++编程中派生类的析构函数
- Android时光轴实现淘宝物流信息浏览效果
- Android Listview上下拉动刷新tab滑动切换功能
- Ubuntu15.10安装docker和docker-compose教程
- js将long日期格式转换为标准日期格式实现思路
- 浅析JavaScript中break、continue和return的区别
- VBS教程:方法-Test 方法
- MYSQL 解锁与锁表介绍
- Windows Server 2008 R2通过IP安全策略阻止某个IP访问的设置方法
- Android Activity之间传递图片(Bitmap)的方法
- PyQt5每天必学之事件与信号
- Java语言中的自定义类加载器实例解析
