`
yongganzhe
  • 浏览: 17621 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

如何给@Bean声明的bean赋属性值?

阅读更多

我现在写了一个自己的验证类

这里面有一个set方法(红色的代码),用来给该Validator赋属性值。

public class PatronCodeValidator implements Validator
{
  private KnowPatrons knowPatrons;
  public void setKnowPatrons(KnowPatrons knowPatrons)
  {
   this.knowPatrons=knowPatrons;
  
  }
 PatronCodeValidator()
  {}
public void validate(IFormComponent field,
  ValidationMessages messages,
         Object object) throws ValidatorException
{
 String patronCode=(String)object;
 if(!knowPatrons.isKnow(patronCode))
 {
  throw new ValidatorException("patron not found",null);
 }

 }
.....................................................................

}

<bean class="com.ttdev.postage.PatronCodeValidator" name="patronCodeValidator"></bean><bean class="com.ttdev.postage.PatronCodeValidator" name="patronCodeValidator"></bean>我没有使用.page文件声明该类,而在在程序中利用annotations来定义。我在页面程序的构造函数中给自定义的validator赋属性值,(程序中红色的代码)我认为完全可以取代.page文件中利用set元素赋值,但程序总是报错。盼望高手解答!

 public abstract class Postage extends BasePage
{
private KnowPatrons knowPatrons;

public KnowPatrons getKonwPatrons();
@Bean
 public abstract ValidationDelegate getDelegate();
@Bean
public abstract PatronCodeValidator getPatronCodeValidator();
public abstract IFieldTracking getCurrentFieldTracking();
public Postage()
{
knowPatrons=new KnowPatrons();
getPatronCodeValidator().setKnowPatrons(knowPatrons);
}
public IPage onSubmit()
{

}
}

 

分享到:
评论
4 楼 yongganzhe 2007-01-31  
谢谢你的回复,希望共同进步。
3 楼 jamesby 2007-01-27  
Page Object 是有一个实例池的概念的,当从池中取出Page Object时,属性被初始化,当返回池时,属性被销毁,所以Page Object是线程安全的,但是在构造函数中,属性显然没有被初使化,估计@bean应该是在生成的PageObject子类中通过set注入的吧(猜测),刚刚学习tapestry.
2 楼 yongganzhe 2007-01-26  
谢谢,tapestry的解答,按照你的方法问题解决了。注释声明的bean变量应该是在一个request到来时才被创建,并随着一个request的结束而结束,对吧?
1 楼 tapestry 2007-01-26  
报什么错误,空指针?不要在构造函数里调用注释声明的变量,应该这时候还没有执行初始化方法,你implements PageBeginRenderListener,覆盖方法public void pageBeginRender(PageEvent event) {
knowPatrons=new KnowPatrons();
getPatronCodeValidator().setKnowPatrons(knowPatrons);
}
试一下

相关推荐

    Java Bean 遍历和使用注解给Bean的属性添加属性值

    在给定的标题"Java Bean 遍历和使用注解给Bean的属性添加属性值"中,我们可以深入探讨两个主要主题:Java Bean的遍历和注解的应用。 1. **Java Bean遍历**: - **反射机制**:遍历Java Bean通常涉及使用Java的反射...

    spring在@Bean注解中initMethod调用方法异步

    10. `PlaceHolderBinder`:这个类可能负责解析和绑定属性占位符,如环境变量和配置文件中的值,到bean的属性上。 总的来说,这个压缩包中的代码片段展示了如何在Spring中利用`@Bean`注解和`initMethod`属性实现异步...

    spring运行过程中动态注册bean

    在定义了Bean之后,我们可以通过`addPropertyReference`方法来设置其属性值。这里的`addPropertyReference`用于设置`UserService`中的`userAcctDAO`属性,该属性将引用名为`UserAcctDAO`的另一个Bean。 ```java ...

    Spring boot将配置属性注入到bean类中

    在Spring Boot中,属性注入是核心特性之一,它使得我们可以方便地将配置文件中的参数值注入到Bean类的属性中,从而实现灵活的配置管理。本文将详细讲解如何利用`@ConfigurationProperties`注解以及与`@...

    spring bean 属性总结

    - **value/ref/local/parent属性**:用于设置属性值或引用其他Bean。其中,`ref`用于引用同一工厂中的Bean,`local`仅限于同一XML文件,`parent`用于引用模板Bean。 - **&lt;list&gt;/&lt;map&gt;/&lt;set&gt;/&lt;props&gt;`元素**:用于...

    基于Spring boot @Value 注解注入属性值的操作方法

    在Spring Boot应用中,`@Value`注解是用于注入属性值的重要工具,它可以方便地从配置文件或者非配置文件中获取数据,并将其赋值给字段或者方法参数。本篇文章将详细阐述`@Value`注解的使用方法,包括如何注入配置...

    00000028_bean-parameter的用法.rar

    1. **XML配置**:在Spring的XML配置文件中,我们可以为Bean定义构造函数参数、属性值或方法调用参数。例如: ```xml &lt;bean id="exampleBean" class="com.example.ExampleClass"&gt; &lt;/bean&gt; ``` 在这里,`...

    day38 11-Spring的Bean的属性的注入:对象属性

    在Spring框架中,Bean的属性注入是核心功能之一,它允许我们为Bean对象设置各种属性值,以便在应用运行时创建和配置完全初始化的对象。在本篇内容中,我们将深入探讨Spring如何处理Bean的属性注入,包括对象属性的...

    Spring的三种实例化Bean的方式

    同时,可以使用`@Autowired`进行依赖注入,`@Value`注入属性值,`@Qualifier`指定特定Bean等。 ```java @Service public class ServiceClass { @Autowired private ExampleBean exampleBean; @Value("${...

    xml和java bean互相转换工具包(简单易用)

    3、根据bean对象以及bean的所有属性值生成xml文件。 String bean2xml = XbeanUtil.bean2xml(bean, null); 使用前请将附件jar包放入classpath。 如有任何疑问,请联系coynnbai@163.com。源代码包及详细使用文档...

    Spring实战之获取其他Bean的属性值操作示例

    在Spring框架中,管理Bean之间的依赖关系是...开发者可以根据需求选择适合的配置方式,以实现对Bean属性的动态访问和赋值。这种特性增强了Spring容器的灵活性,使得我们在处理业务逻辑时能更好地控制和管理Bean的状态。

    Spring实例化Bean顺序

    5. **InitializingBean接口**:如果Bean实现了`InitializingBean`接口,Spring会在所有必需的属性设置后调用`afterPropertiesSet()`方法。这个接口的方法调用时机晚于`@PostConstruct`注解的方法,因此实例化顺序会...

    Sping学习笔记(2)----实例化Bean的三种方式

    这里,`id`属性定义了Bean的唯一标识,`class`属性指定了Bean的全限定类名,`property`标签用于设置Bean的属性值,`ref`属性引用其他Bean。 2. **注解配置方式** 自Spring 2.5引入注解支持后,可以通过在类或方法...

    spring bean的生命周期

    - **属性注入**:Spring会将依赖注入到Bean中,包括值注入(value,ref)和集合注入(list,map,props,set)。 - **初始化回调**:Spring支持两种类型的初始化回调方法,即`@PostConstruct`注解的方法和在XML中...

    day38 14-Spring的Bean的属性的注入:集合属性的注入

    在Spring框架中,Bean的属性注入是核心功能之一,它允许我们通过配置文件或注解来设置Bean的属性值,从而实现对象的依赖管理。在本主题“day38 14-Spring的Bean的属性的注入:集合属性的注入”中,我们将深入探讨...

    IOC之基于注解的配置bean(上)

    此外,`@Value`注解用于注入基本类型的值或表达式结果,而`@PropertySource`则可以加载外部属性文件,结合`@Value`注入变量。 最后,`@Profile`注解允许我们在不同环境下使用不同的Bean。例如: ```java @Profile...

    spring bean XML配置入门

    该文件包含了一系列的&lt;bean&gt;元素,每个元素表示一个Java对象的定义,包括类名、属性值、初始化方法等。 4. **Bean的定义**: 在XML配置文件中,我们使用`&lt;bean&gt;`标签来定义一个Bean。例如: ```xml &lt;bean id=...

    深度转换Bean<->Bean的Mapper

    首先,BeanMapper的核心功能是将一个对象的属性值复制到另一个对象,即使这两个对象的结构不同。这种转换对于数据模型间的映射非常有用,例如在业务逻辑层和数据访问层之间,或者在API响应与内部模型之间。 在描述...

    day38 17-Spring的Bean的属性注入:注解方式

    本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中的注解。在Spring 2.5版本之后,引入了基于注解的配置,这使得我们可以直接在类或方法上使用注解来声明...

    将list中的内容根据某一属性的值对list进行拆分

    拆分list,将list&lt;bean&gt;中的内容根据某一属性的值对list进行拆分,分组

Global site tag (gtag.js) - Google Analytics