当前位置: 首页 > 知识库问答 >
问题:

Spring ldap 2.0.1替换已弃用的OdmManager

夏飞掣
2023-03-14

似乎是在SpringLDAP 2。x、 OdmManager工具已被弃用,因为大多数类似odm的事情都可以由ldapTemplate完成,这是事实。但是OdmManager能够注入一个ConverterManager,它可以告诉您自定义类型转换的情况。对于类odm(ConverterManager)操作,使用ldapTemplate的等效方法是什么?

如果ldapTemplate中没有等效系统,应:

>

  • 如果自定义类作为要映射到ldap属性或从ldap属性映射的属性存在,则使用单字符串构造函数和字符串toString()类方法隐式检测自定义类。

    隐式地允许使用bean编辑器,从文本映射到特定类型

    明确地拥有一些工具,比如转换器管理器,您可以在其中配置它。

    例如,考虑简单类(我想成为bean属性的类型,它将映射到ldap时间戳)

    公共类LdapTimestamp{

    static private Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Australia/Brisbane"));
    static private DateFormat toStringFormat;
    static {
        toStringFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
        toStringFormat.setCalendar(cal);
    }
    static private DateFormat nativeLdapFormat = new SimpleDateFormat("yyyyMMddHHmmssZ"); 
    
    private Date dateTime; // GMT time
    
    public LdapTimestamp(String ldapDateTimeString) throws ParseException {
        this.dateTime = nativeLdapFormat.parse(ldapDateTimeString);
    }
    
    public LdapTimestamp() {
        super();
    }
    
    public Date getDateTime() {
        return dateTime;
    }
    
    public void setDateTime(Date dateTimeObject) {
        this.dateTime = dateTimeObject;
    }
    
    public void setDateTime(String ldapDateTimeString) throws ParseException {
        this.dateTime = nativeLdapFormat.parse(ldapDateTimeString);
    }
    
    public String toStringShort() {
        return toStringFormat.format(dateTime);
    }
    
    public String toString() {
        return nativeLdapFormat.format(dateTime);
    }
    

    }

    其目的是,bean本机存储一个日期对象,该对象可用于日期范围比较等,同时将ldap日期字符串作为toString()从bean外部返回,作为带单个字符串参数的构造函数返回到bean内部。

    这似乎是ConverterManager的建议,但这是新代码,所以如果可以避免的话,我宁愿不使用不推荐的OdmManager接口。ConverterManager并没有被弃用,但我看不出有什么明显的方法可以将其链接到ldapTemplate来使用。

    欢迎任何想法。

  • 共有1个答案

    糜征
    2023-03-14

    LdapTemboard有一个setObjectDirectoryMapper方法,它使您能够注入配置的ObjectDirectoryMapper(对应于以前版本中的OdmManager)。DefaultObjectDirectoryMapper可以配置一个ConverterManager,所以我认为你应该都设置好了。

     类似资料:
    • 我对有问题: 应用程序启动时会显示警告: 警告7388---[main]组织。冬眠orm。弃用:HH90000014:发现使用弃用的[org.hibernate.id.SequenceHiLoGenerator]基于序列的id生成器;使用组织。冬眠id.enhanced。相反,SequenceStyleGenerator。有关详细信息,请参阅《Hibernate域模型映射指南》 我试图找出如何用新

    • 在iOS7中,该方法: 和方法: 已弃用。如何更换 和:

    • 问题内容: 需要向订单项添加自定义元。用Google搜索它,大多数文章说使用“ woocommerce_add_order_item_meta”钩子。最新版本2.3.7不推荐使用此挂钩。有人,请告诉我使用哪个挂钩。 http://docs.woothemes.com/wc-apidocs/function- woocommerce_add_order_item_meta.html 问题答案: 如果

    • 我正在将java应用程序从SpringBoot1.5迁移到SpringBoot2.2.3,这涉及到将Hibernate/Envers升级到5.4.10。最终的 现有代码调用AuditReader#getCurrentRevision(类revisionEntityClass,boolean persist),该类已被弃用,JavaDocs状态为使用RevisionListener,但这与我们需要获

    • 我试图找到一种方法来使用新的DefaultErrorHandler而不是弃用的SeekToFlutErrorHandler在sping-kafka 2.8.1,以覆盖重试默认行为的错误情况下。我想“停止”重试过程,所以如果发生错误,不应该重试。 现在,在一个配置类中,我有了如下bean,它可以按预期工作: 由于在这个Spring的kafka版本中,STCEH是弃用的,我试图在同一个配置类中执行以下

    • 问题内容: 今天,我决定将我的android应用程序从Java转换为Kotlin!:)但是,当我输入以下内容时,我感到非常惊讶: 然后Android Studio告诉我:“’getActionView(MenuItem!):View!’ 已弃用。Java中已弃用“ 因此,在问您解决方案之前,我先问谷歌解决方案是什么,我相信我找到了解决方案:“直接使用getActionView()”。 所以我像这样