`
dacoolbaby
  • 浏览: 1265982 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[Spring]-关于构造函数是private的初始化Bean

    博客分类:
  • Java
 
阅读更多

项目比较旧,还是JDK1.4,但是作为熟悉基础知识,还是需要掌握一点的。

 

一版的Spring配置如下:

<bean id="user" class="kevin.User">  
     <property name="name" value="Kevin"></property>  
     <property name="age" value="99"></property>  
</bean> 

 

 

Spring使用User的无参构造函数进行User对象的实例化。

 

那如果User的实例化有参数呢?

<bean id="user" class="kevin.User">  
    <constructor-arg value="123"></constructor-arg>  
    <constructor-arg value="male"></constructor-arg>  
    <property name="name" value="Kevin"></property>  
    <property name="age" value="99"></property>  
</bean>

 那就通过<constructor-arg>XXX</constructor-arg>

来配置吧。

 

最后一种情况,就是这个对象的构造函数的私有的,或者是来自于工厂类的:

<!--工厂类构造实例化-->
<bean id="userFactory" class="kevin.UserFactory">  
    </bean>  

<bean id="user" factory-bean="userFactory"  
        factory-method="newInstance2">  
       <property  name="name" value="KevinJom"></property>  
    </bean>

<!--单例类实例化-->
<bean id="user" factory-bean="userFactory"  
        factory-method="getInstance">  
    </bean>

 

因为很多时候,单例类也需要引用Service层,或者DAO层的对象。

通过Spring的配置就可以方便注入了。

 

Spirng2.5以后就有。。。

@Autowired

 

 

 

分享到:
评论

相关推荐

    Spring--2.Spring 中的 Bean 配置-3

    在Spring框架中,Bean配置是核心概念之一,它关乎到对象的创建、初始化、装配以及管理。本节我们将深入探讨Spring中的Bean配置,主要聚焦在第三部分,这通常涉及到更高级和灵活的配置方式。 首先,Spring允许我们...

    Spring----IOC实现

    Bean定义包含关于如何创建和配置Bean的所有信息,如类名、属性值、初始化方法等。这些信息可以写在XML配置文件中,也可以通过Java注解实现。 3. **XML配置**:传统的Spring配置方式是使用XML文件。例如,我们可以...

    spring-database.zip

    这里,我们设置了数据源的基本参数,如初始化大小、最小空闲连接数、最大活动连接数,以及连接验证查询和启用的过滤器。 为了让Druid的监控平台正常工作,我们需要在Spring Boot的主类上添加`@EnableWebMvc`注解,...

    spring中的bean

    在Spring中,Bean通常代表应用程序中的一个对象,这些对象由Spring容器(ApplicationContext)管理,包括创建、初始化、装配和销毁。Bean可以通过XML配置文件、注解或者Java配置类进行定义。 1. **Bean的定义**:在...

    Spring在应用中获得Bean的方法

    只要在字段、setter方法或构造函数上添加`@Autowired`,Spring就会自动匹配并注入相应的Bean。 ```java public class MyClass { @Autowired private MyBean myBean; } ``` 4. **通过`@Resource`注解** `@...

    day38 16-Spring的Bean的装配:注解的方式

    4. `@Value`: 用于注入基本类型的值或者SpEL表达式的结果到字段、方法或方法/构造函数参数中。 5. `@Scope`: 定义Bean的作用域,如`prototype`(原型)和`singleton`(单例)。 6. `@PostConstruct` 和 `@...

    Java-EE.rar_Java EE控制反转_javaee 控制反转_构造函数注入

    构造函数注入则是通过调用带有依赖对象参数的构造函数来完成初始化。 构造函数注入的优点在于它强制了对象在创建时就满足所有依赖关系,确保了对象的完整性和一致性。例如,如果我们有一个`Service`类,它依赖于`...

    00000028_bean-parameter的用法.rar

    Bean的创建、初始化、装配以及销毁都由Spring容器负责。 参数化Bean意味着在创建Bean实例时,我们可以传递参数以满足不同场景的需求。这在处理动态配置、环境特定设置或者需要注入不同依赖时非常有用。有几种方式...

    springbeanDomo.rar

    总结,理解Spring Bean的创建流程是掌握Spring框架的关键步骤,这包括Bean定义、扫描、实例化、依赖注入和初始化。通过实际示例,我们可以更直观地感受到Spring如何有效地管理对象和依赖关系,提高代码的可维护性和...

    spring基础示例

    - **原生bean管理**:Spring容器默认按照无参构造函数创建bean,然后通过setter方法或者`@Autowired`进行装配。如果需要自定义初始化或销毁行为,可以使用`init-method`和`destroy-method`属性,或实现`...

    Spring的基本配置

    XML配置文件通常命名为`applicationContext.xml`,它是Spring容器的配置中心,定义了Bean的创建、初始化、装配以及它们之间的关系。一个基本的Spring配置文件可能包含以下元素: - `&lt;beans&gt;`:根元素,表示配置文件...

    java bean实例

    1. **公共构造函数**:Java Bean应提供一个无参数的公共构造函数,以便于实例化。 2. **属性**:Bean通常包含一组私有属性(private fields),这些属性可以通过公共的getter和setter方法进行访问和修改,实现数据的...

    Spring在代码中获取bean的几种方式.rar

    Bean是由Spring容器创建、初始化、装配以及管理的对象,开发者可以通过多种方式在代码中获取这些Bean。以下将详细介绍Spring在代码中获取bean的几种主要方法: 1. **`ApplicationContext` 接口** `...

    spring依赖注入三种方式 测试源码

    这种方式允许对象在创建后进行初始化,或者在不改变构造函数签名的情况下注入依赖。例如: ```java public class UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this....

    spring从入门到精通精简笔记

    在构造注入方式下,Bean 的依赖关系通过构造函数传递。这种方式的好处在于它能确保所有必需的依赖都被正确地初始化。改造后的 `HelloWorld.java` 和 `config.xml` 文件应该如下所示: ```java public class Hello...

    spring-optional-dependency-injection

    除了`Optional`,Spring 4.3引入了`ObjectProvider`接口,它提供了一种延迟初始化和更灵活的可选依赖注入方式。`ObjectProvider`可以被看作是`Optional`和`@Autowired`的结合,它允许我们在运行时决定是否需要依赖,...

    测试spring中的org.springframework.beans.factory.InitializingBean

    2. **属性注入**:接着,Spring会尝试将所有依赖的属性值注入到bean实例中,这可以通过setter方法、构造函数参数、@Autowired注解等方式完成。 3. **初始化回调**:如果bean实现了`InitializingBean`接口,那么在...

    spring_ioc框架学习文档

    `Juggler`类实现了`Performer`接口,并提供了一个构造函数来初始化`beanBags`的值。在`perform`方法中,它打印出`beanBags`的值。 3. **在XML文件中定义Bean**: ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt;...

    Spring三种注入方式(三)

    // Spring会在bean初始化后调用此方法 @Override public void afterPropertiesSet() throws Exception { userRepository = new UserRepository(); } } ``` 除了以上三种方式,Spring还提供了基于注解的元数据...

    狂神 Spring5课堂笔记

    // 使用构造函数注入UserDao实例 public UserServiceImpl(UserDao userDao) { this.userDao = userDao; } @Override public void getUser() { // 调用UserDao的getUser方法获取用户数据 userDao.getUser()...

Global site tag (gtag.js) - Google Analytics