在每一个SSH项目中,都会为持久层操作封装一套持久化操作接口,比如:
BaseRepository,BaseDao之类,并针对于这样的接口使用JPA,Hibernate等方式对接口进行相关实现,并能够将其封装成为一个公用的jar包(这里取名为go-persistence。当其它项目要想重用这些API里,只需要将这个包引用到工程中就可以了。下面是一个针对于接口的hibernate实现并使用了spring的HibenateDaoSupport类,部分代码如下
@Repository
@SuppressWarnings({"unchecked", "rawtypes"})
public class EntityRepositorySpringHibernate extends HibernateDaoSupport implements EntityRepository {
@Autowired
public void setSessionFactoryOverride(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
@Override
public <T extends Entity> T save(T entity) {
this.getHibernateTemplate().saveOrUpdate(entity);
return entity;
}
}
在EntityRepositorySpringHibernate类中需要hibernate的SessionFactory工厂类,我们希望在spring容器启动的时候,跟据如下的applicationContexy配置文件中的sesssionFactory,注入到EntityRepositorySpringHibernate中。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${jdbc.dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.jdbc.fetch_size">25</prop>
<prop key="hibernate.jdbc.batch_size">50</prop>
<!-- dev -->
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.generate_statistic">false</prop>
<prop key="hibernate.cache.use_query_cache">false</prop>
<!--代表使用Hibernate的二级缓存-->
<prop key="hibernate.cache.use_second_level_cache">false</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
</beans>
并在引用到persistence模块的工程中能够通过注解直接引用EntityRepositorySpringHibernate实例,如:
[code=”java”]
@Repository
public class ContactRepositoryImpl extends EntityRepositorySpringHibernate implements ContactRepository{
@Override
public void addContact(Contact contact) {
this.save(contact);
}
在自己写的jar包中使用spring注解方式,需要在导出工程为jar包时选中Add directory entries,如果没有勾选,那么spring将不扫描jar包中的注解。这时需要在配置文件中配置<bean>标签才行。
分享到:
相关推荐
通过上述方法,我们可以有效地解决Spring Boot项目编译后无法扫描子JAR包中注解的问题。这种方法不仅能够简化主项目的依赖关系,还能避免重复依赖带来的冲突问题。对于那些希望优化多模块Spring Boot项目构建流程的...
综上所述,"加载jar包中的spring配置文件"是一个关键的Java开发实践,它涉及到Spring框架的配置管理、类路径的概念,以及如何在多模块项目中有效地组织和使用配置。正确理解和使用这些技术,能帮助开发者构建可扩展...
加载jar包中的Spring配置文件需要对Spring的类路径加载机制有深入理解。通过`ClassPathResource`,我们可以定位并加载jar包内的配置,然后应用到`ApplicationContext`。在SSM整合的项目中,正确地加载这些配置文件...
在处理JAR内的配置文件时,通常会使用`@PropertySource`注解来指示Spring从特定资源加载属性。例如: ```java @Configuration @PropertySource("classpath:/config/application.properties") public class ...
然而,当Bean定义在独立的jar包中,有时Spring可能无法正确扫描并加载这些Bean。这种情况通常发生在将公共模块打包成jar,并在其他项目中作为依赖引入时。本文将深入探讨这个问题,并提供解决方案。 首先,我们需要...
让我们深入探讨一下Spring开发jar包中的关键知识点。 1. **依赖注入(Dependency Injection, IOC)**: - 依赖注入是Spring框架的核心特性之一,它允许我们将对象之间的依赖关系解耦,使得代码更加灵活和易于测试...
本文将深入探讨Spring核心jar包中的关键概念和技术。 1. **IoC(控制反转)与DI(依赖注入)** Spring的核心特性之一是IoC(Inversion of Control),它将对象的创建和管理权交给了Spring容器。DI(Dependency ...
本文将深入探讨Spring核心jar包中的关键组件、功能及其在实际开发中的应用。 1. **依赖注入(Dependency Injection, DI)**:Spring的核心特性之一是依赖注入,它允许对象之间的依赖关系在运行时动态配置,而不是硬...
Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class文件,动态实现spring bean 的动态加载,并通过UrlClassLoader完成jar和class文件的加载。可以实现jar的热替换。spring的bean动态加载则需要对...
你可以深入研究这些jar包中的类和方法,了解Spring如何管理Bean,如何解析配置,以及如何执行依赖注入等操作。 总的来说,Spring 5.2.9的IOC核心jar包是构建高效、可扩展的Java后端应用的重要组成部分。通过理解和...
本文将深入探讨Spring框架的核心组件及其在jar包中的体现。 首先,Spring的核心组件包括Spring Core、Spring Beans和Spring Context。Spring Core提供基础的IoC(Inversion of Control)服务,如资源加载、对象创建...
本篇文章将深入探讨Spring 3.2 jar包中的关键知识点及其在J2EE开发中的应用。 首先,Spring的核心理念是依赖注入(Dependency Injection,DI),它通过反转控制权,使对象之间的依赖关系不再硬编码,而是由外部容器...
6. **Spring Boot**:虽然不在基础jar包中,但Spring Boot是基于Spring框架的快速开发工具,它预设了许多默认配置,简化了项目初始化和部署。 7. **注解驱动开发**:Spring支持大量注解,如@Service、@Repository、...
在 Spring MVC 中,可以使用 @Controller 注解标记类作为控制器,通过 @RequestMapping 注解映射 HTTP 请求。控制器处理请求,更新模型,并决定返回哪个视图。 6. **Web 依赖**: Spring MVC 还依赖于其他 Web 相关...
4. **spring-core.jar**:Spring 的核心工具类,包括 IoC 容器的基础功能和通用的类工具。 5. **spring-aop.jar**:支持 AOP 面向切面编程,允许开发者定义方法拦截器和切入点表达式。 6. **spring-expression.jar**...
在Spring的jar包中,有几个关键的组件和模块,它们包括: 1. **spring-core.jar**:这是Spring框架的基础,包含核心工具类和IoC容器。它提供了Bean工厂,这是Spring应用的基础,用于管理对象的生命周期和依赖关系。...
在Spring 2.5.6的jar包中,你可能会看到以下文件: - `spring-beans.jar`:包含Bean工厂和IoC容器的核心类。 - `spring-context.jar`:扩展了`spring-beans`,提供应用上下文和AOP支持。 - `spring-core.jar`:基础...
标题 "spring最常用jar包" 暗示了我们讨论的核心是Spring框架中不可或缺的库文件,这些jar包是开发人员...通过理解并熟练掌握这些jar包中的知识点,开发者可以充分利用Spring框架的优势,提高开发效率,降低维护成本。
8. **Spring Boot**:虽然不直接包含在jar包中,但Spring4.1与Spring Boot的结合使用更加紧密,Spring Boot简化了Spring应用的启动和运行,通过自动配置和起步依赖,让开发者能够快速构建独立的Spring应用。...
Spring4.3.9官方jar包中包含了一系列的jar文件,这些文件分别对应Spring框架的不同模块: 1. **spring-core.jar**:核心工具包,提供了Spring的基本功能,包括Bean工厂、容器和核心工具类。 2. **spring-beans.jar*...