`

bboss mvc忽略对bean属性进行参数绑定方法

阅读更多
bboss mvc忽略对bean属性进行参数绑定方法非常简单,通过在bean的属性上添加@IgnoreBind注解即可,参考示例如下:
import org.frameworkset.util.annotations.IgnoreBind;
public class ExampleBean
{
	@IgnoreBind
	private String name = null;

	
	public String getName()
	{
	
		return name;
	}

	
	public void setName(String name)
	{
	
		this.name = name;
	}

}


@IgnoreBind另外的一个作用:如果对象存在自引用关系,可以用来防止mvc参数绑定时出现死循环导致堆栈溢出的问题,例如对象结构为:
public class UserBusinessBean {

    private String id;// 主键id

    private String userId;// 用户id

    private String userRealname;// 用户名称

    private String modelId;// 设备型号id

    private String equipmentModel;// 设备型号

    private String geographicalPosition;// 地理位置

    private String faultId;// 故障部位id

    private String faultPosition;// 故障部位

    @IgnoreBind
    private List<UserBusinessBean> businessList;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getModelId() {
        return modelId;
    }

    public void setModelId(String modelId) {
        this.modelId = modelId;
    }

    public String getGeographicalPosition() {
        return geographicalPosition;
    }

    public void setGeographicalPosition(String geographicalPosition) {
        this.geographicalPosition = geographicalPosition;
    }

    public String getFaultId() {
        return faultId;
    }

    public void setFaultId(String faultId) {
        this.faultId = faultId;
    }

    public String getEquipmentModel() {
        return equipmentModel;
    }

    public void setEquipmentModel(String equipmentModel) {
        this.equipmentModel = equipmentModel;
    }

    public String getFaultPosition() {
        return faultPosition;
    }

    public void setFaultPosition(String faultPosition) {
        this.faultPosition = faultPosition;
    }

    public String getUserRealname() {
        return userRealname;
    }

    public void setUserRealname(String userRealname) {
        this.userRealname = userRealname;
    }

    
    public List<UserBusinessBean> getBusinessList() {
        return businessList;
    }

    
    public void setBusinessList(List<UserBusinessBean> businessList) {
        this.businessList = businessList;
    }


}

UserBusinessBean对象中定义了以下属性businessList:
@IgnoreBind
    private List<UserBusinessBean> businessList;
如果不加 @IgnoreBind注解,那么mvc在绑定UserBusinessBean类型的参数时,就导致堆栈溢出,加上就没问题,以下是可能出现的堆栈溢出错误信息以供参考:
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
v  ~RuntimeStub::StackOverflowError throw_exception
J  sun.nio.cs.ext.DoubleByte$Encoder.encodeArrayLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
J  sun.nio.cs.ext.DoubleByte$Encoder.encodeLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;
J  java.nio.charset.CharsetEncoder.encode(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
J  sun.nio.cs.StreamEncoder.implWrite([CII)V
J  sun.nio.cs.StreamEncoder.write([CII)V
J  sun.nio.cs.StreamEncoder.write(Ljava/lang/String;II)V
J  java.io.OutputStreamWriter.write(Ljava/lang/String;II)V
J  java.io.Writer.write(Ljava/lang/String;)V
J  org.apache.log4j.helpers.CountingQuietWriter.write(Ljava/lang/String;)V
J  org.apache.log4j.WriterAppender.subAppend(Lorg/apache/log4j/spi/LoggingEvent;)V
J  org.apache.log4j.RollingFileAppender.subAppend(Lorg/apache/log4j/spi/LoggingEvent;)V
J  org.apache.log4j.WriterAppender.append(Lorg/apache/log4j/spi/LoggingEvent;)V
J  org.apache.log4j.AppenderSkeleton.doAppend(Lorg/apache/log4j/spi/LoggingEvent;)V
J  org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(Lorg/apache/log4j/spi/LoggingEvent;)I
J  org.apache.log4j.Category.callAppenders(Lorg/apache/log4j/spi/LoggingEvent;)V
J  org.apache.log4j.Category.debug(Ljava/lang/Object;)V
J  org.frameworkset.web.servlet.handler.HandlerUtils.newCommandObject(Ljava/lang/Class;)Ljava/lang/Object;
分享到:
评论

相关推荐

    bboss mvcdemo 下载地址

    7. **性能优化**:BBoss MVCDemo对请求处理进行了优化,比如支持缓存机制,可以显著提高应用的响应速度。 8. **易用性与灵活性**:BBoss MVCDemo具有良好的文档支持,提供了丰富的API和示例,降低了学习曲线。同时...

    bboss mvc 通过jsonp实现跨站跨域远程访问

    总结来说,bboss MVC框架通过JSONP机制实现了跨站跨域数据访问,这对于需要进行跨域通信的Web应用非常有用。同时,这个主题也涵盖了源码理解和工具使用,以及可能涉及的国际化开发实践。对于Java Web开发者而言,...

    bboss mvc文件上传下载实战进阶

    NULL 博文链接:https://yin-bp.iteye.com/blog/1131637

    bboss ioc配置文件中使用外部属性文件介绍

    当需要使用外部属性文件时,我们可以创建一个独立的`.properties`文件,如`config.properties`,这个文件可以包含应用程序的配置参数,如数据库连接字符串、服务器端口等。 在`config.properties`中,键值对的形式...

    bboss-mvc.jar

    官方版本,亲测可用

    bboss 安全认证过滤器功能介绍

    在这里,我们可以配置过滤器的参数,如定义哪些URL需要进行安全认证,或者设置默认的登录页面等。 2. **过滤链执行**:`doFilter()`方法是过滤器的核心,它会在每次请求经过时被调用。在`SYSAuthenticateFilter`中...

    bboss会话共享培训文档

    bboss兼容Servlet 2/3规范,能够与现有的应用系统无缝集成,减少或无需进行修改。它还支持跨多个主流应用服务器(如Tomcat、WebLogic、WebSphere、Jetty等)部署,并且没有会话粘滞性的约束,允许客户端请求均匀地...

    bbossgroups 开发系列文章之一 最佳实践

    通过依赖注入,可以将数据库访问组件注入到DAO中,使得业务组件可以直接调用DAO方法进行数据操作。 业务组件管理及注入DAO组件是业务逻辑层的核心。业务组件通常包含了复杂的业务规则,它们通过依赖注入的方式获取...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    基于bboss框架的全面设计源码自动生成工具

    该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948

    企业级J2EE开源框架bboss

    BBoss框架的最新版本bbossgroups-bboss-389b83a可能包含了对原有功能的优化、新特性的添加以及bug修复。开发者在使用时,应详细阅读官方文档,了解其具体变更,以便更好地利用这一强大的工具进行企业级应用的开发。 ...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    1. **创建索引**: 使用 BBoss 提供的 API 创建索引,指定映射(Mapping)以便对数据类型进行定义。 2. **插入数据**: 将业务数据插入到索引中,BBoss 提供了批量插入功能,可以高效处理大量数据。 3. **查询数据**: ...

    基于Java的bboss开源框架设计源码

    bboss框架集成了AOP/iOC、MVC、持久化标签库、RPC、事件处理、Bean-XML序列化等多种功能。本项目基于bboss框架构建了数据采集ETL工具、流批一体化Stream工具、Elasticsearch客户端工具和WebSession共享框架等应用。

    bboss-gencode:这是一个自动为bboss mvc,ioc,persistent,jsp,i18n,sql配置文件,webservice,hessian服务等生成源代码的工具。Dev文档yin-bp.iteye.comblog2256948-mvc source code

    自动代码生成器是针对bboss框架和bboss开发平台的自动代码生成工具,可以根据模板,自动生成给定表的增,删,改,分页查询,列表查询,国际化功能对应的程序和配置文件: 1.mvc控制器 2.业务组件 3.实体类 4.jsp文件...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

Global site tag (gtag.js) - Google Analytics