gpt4 book ai didi

java - 如何在露天访问 session 工厂(数据源)?

转载 作者:行者123 更新时间:2023-12-01 09:22:15 26 4
gpt4 key购买 nike

使用常见的 Spring 应用程序,我可以将 dataSource 或 Hibernate session 工厂定义为 bean,然后简单地 Autowiring 它们。像这样:

@Autowired
private DataSource dataSource;

@Autowired
private SessionFactory sessionFactory;

现在我想创建一些表并将它们存储在露天。如何获取指向alfresco数据库的dataSourcesessionFactory(如果alfresco使用hibernate)?

最佳答案

注入(inject) core-services-context.xml 中定义的 dataSource bean :

<bean id="dataSource" class="org.alfresco.config.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/dataSource</value>
</property>
<property name="defaultObject">
<ref bean="defaultDataSource" />
</property>
</bean>

使用your-config-context.xml,例如ibatis-context.xml :

<bean id="repoSqlSessionFactory" class="org.alfresco.ibatis.HierarchicalSqlSessionFactoryBean">
<property name="resourceLoader" ref="dialectResourceLoader"/>
<property name="dataSource" ref="dataSource"/>
<property name="configLocation">
<value>classpath:alfresco/ibatis/alfresco-SqlMapConfig.xml</value>
</property>
</bean>

请注意:

Alfresco incorporates Hibernate and iBATIS open source database abstraction layers to allow it to be ported to a number of different database management systems.

所以,最好使用 MyBatis-Springorg.mybatis.spring.SqlSessionTemplate ,例如org.alfresco.repo.domain.audit.ibatis.AuditDAOImpl.java :

<bean id="auditSqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="repoSqlSessionFactory"/>
</bean>

<bean id="auditDAO" class="org.alfresco.repo.domain.audit.ibatis.AuditDAOImpl">
<property name="sqlSessionTemplate" ref="auditSqlSessionTemplate"/>
<property name="contentService" ref="contentService"/>
<property name="contentDataDAO" ref="contentDataDAO"/>
<property name="propertyValueDAO" ref="propertyValueDAO"/>
</bean>

这个Alfresco 5 and Spring tutorial可能对你有帮助。

关于java - 如何在露天访问 session 工厂(数据源)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40098781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com