- 浏览: 46800 次
最新评论
spring的基于java的项目配置示例。
import org.springframework.web.context.AbstractContextLoaderInitializer; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; public class CmsAppInitializer extends AbstractContextLoaderInitializer { @Override protected WebApplicationContext createRootApplicationContext() { AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); applicationContext.register(RootConfig.class); return applicationContext; } }
import java.util.Properties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.PropertiesFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.ImportResource; import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.PropertySources; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.env.Environment; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import com.xxx.springutil.failfast.FailFastFromPropertyAndSystemProperty; @Configuration @ComponentScan(basePackages={"com.xxx.cms"}) @PropertySources({ @PropertySource(value="classpath:/hs-cms-srv-properties/hs-cms-srv-env.properties"), @PropertySource(value="file:${appHome}/hs-cms-srv-env.properties", ignoreResourceNotFound=true) }) @ImportResource(value = { "classpath:/hs-cms-srv-config/spring-memcached.xml", // "classpath:/hs-cms-srv-config/spring-elasticsearch.xml", "classpath:/hs-cms-srv-config/spring-dubbo.xml", "classpath:/hs-core-srv-client-config/context-client.xml", "classpath:/hs-cms-srv-config/spring-redis-client.xml", "classpath*:/hs-mq-client-config/spring-jms-common.xml", "classpath*:/hs-mq-client-config/spring-jms-producer.xml" }) @Import({ MybatisConfig.class, ElasticSearchConfig.class }) public class RootConfig { @Autowired Environment env; @Bean public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer() { final PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer(); pspc.setIgnoreResourceNotFound(true); pspc.setIgnoreUnresolvablePlaceholders(true); return pspc; } @Bean public PropertiesFactoryBean appProps() { PropertiesFactoryBean pfb = new PropertiesFactoryBean(); pfb.setSingleton(true); Properties properties = new Properties(); properties.put("appEnv", env.getProperty("hs.admin.env", "dev")); pfb.setProperties(properties); return pfb; } @Bean public FailFastFromPropertyAndSystemProperty failFastFromPropertyAndSystemProperty() { FailFastFromPropertyAndSystemProperty ff = new FailFastFromPropertyAndSystemProperty(); ff.setIfExistSystemPropertyVar("appHome"); ff.setPropertyValueBySpring(env.getProperty("hs.cms.srv.env", "dev")); ff.setStopWhenPropertyEqualsThisValue("dev"); return ff; } @Bean public ThreadPoolTaskExecutor taskExcutor() { ThreadPoolTaskExecutor taskExcutor = new ThreadPoolTaskExecutor(); taskExcutor.setCorePoolSize(16); taskExcutor.setMaxPoolSize(32); taskExcutor.setQueueCapacity(64); return taskExcutor; } }
import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.support.TransactionTemplate; import com.xxx.dao.GenericMybatisDao; import com.xxx.passwordencrypt.DbPasswordFactoryBean; import com.alibaba.druid.pool.DruidDataSource; @Configuration public class MybatisConfig { private final static String ENV_PRODUCT = "product"; private final static String ENV_BETA = "beta"; @Value("${hs.cms.srv.env}") private String env; @Value("${hs.cms.srv.jdbc.druid.driverClassName}") private String driverClassName; @Value("${hs.cms.srv.jdbc.druid.url}") private String jdbcUrl; @Value("${hs.cms.srv.jdbc.druid.username}") private String username; @Value("${hs.cms.srv.jdbc.druid.password}") private String password; @Value("${hs.cms.srv.jdbc.druid.initialSize}") private Integer initialSize; @Value("${hs.cms.srv.jdbc.druid.maxActive}") private Integer maxActive; // @Value("${hs.cms.srv.jdbc.druid.maxIdle}") // private Integer maxIdle; @Value("${hs.cms.srv.jdbc.druid.minIdle}") private Integer minIdle; @Value("${hs.cms.srv.jdbc.druid.maxWait}") private Integer maxWait; // @Value("${hs.cms.srv.jdbc.druid.removeAbandoned}") // private Boolean removeAbandoned; // @Value("${hs.cms.srv.jdbc.druid.removeAbandonedTimeout}") // private Integer removeAbandonedTimeout; private boolean needDecryptPassword() { return ENV_PRODUCT.equals(env) || ENV_BETA.equals(env); } @Bean(initMethod = "init", destroyMethod = "close") @DependsOn() public DruidDataSource dataSource() throws Exception { if (needDecryptPassword()) { DbPasswordFactoryBean dbPasswordFactoryBean = new DbPasswordFactoryBean(); dbPasswordFactoryBean.setCryptWord(password); password = dbPasswordFactoryBean.getObject(); } DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClassName); dataSource.setUrl(jdbcUrl); dataSource.setUsername(username); dataSource.setPassword(password); dataSource.setInitialSize(initialSize); dataSource.setMaxActive(maxActive); // dataSource.setMaxIdle(maxIdle); dataSource.setMinIdle(minIdle); dataSource.setMaxWait(maxWait); dataSource.setTestOnBorrow(true); dataSource.setTestOnReturn(false); dataSource.setTestWhileIdle(true); dataSource.setFilters("mergeStat"); dataSource.setValidationQuery("SELECT 1"); dataSource.setPoolPreparedStatements(true);// MySQL的4.1.0后可开启服务端PreparedStatement的缓存优化 dataSource.setMaxPoolPreparedStatementPerConnectionSize(20);// 设置单个数据库连接缓存的PreparedStatement的条数 // dataSource.setRemoveAbandoned(removeAbandoned); // dataSource.setRemoveAbandonedTimeout(removeAbandonedTimeout); // <property name="filters" value="stat" /> // <property name="minEvictableIdleTimeMillis" value="300000" /> // <property name="timeBetweenEvictionRunsMillis" value="60000" /> // <property name="validationQuery" value="SELECT 1" /> // <property name="testWhileIdle" value="true" /> // <property name="testOnBorrow" value="false" /> // <property name="testOnReturn" value="false" /> return dataSource; } @Bean public DataSourceTransactionManager transactionManager() throws Exception { return new DataSourceTransactionManager(dataSource()); } @Bean public TransactionTemplate transactionTemplate() throws Exception { TransactionTemplate txTemplate = new TransactionTemplate(); txTemplate.setTransactionManager(transactionManager()); return txTemplate; } @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); // sessionFactory.setTypeAliasesPackage("com.huasheng.cms.channel.common.domain"); // sessionFactory.setTypeHandlersPackage("com.huasheng.cms.dao.mybatis.typehandler"); Resource configLocation = new ClassPathResource("/hs-cms-srv-mybatis/mybatis-configuration.xml"); sessionFactory.setConfigLocation(configLocation); ResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver(); Resource [] mappingLocations = patternResolver.getResources("classpath*:/hs-cms-srv-mybatis/**/*Mapper.xml"); sessionFactory.setMapperLocations(mappingLocations); return sessionFactory.getObject(); } @Bean public SqlSessionTemplate sqlSessionTemplate() throws Exception { return new SqlSessionTemplate(sqlSessionFactory()); } @Bean public SqlSessionTemplate sqlSessionTemplateBatch() throws Exception { return new SqlSessionTemplate(sqlSessionFactory(), ExecutorType.BATCH); } @Bean public GenericMybatisDao dao() throws Exception { GenericMybatisDao dao = new GenericMybatisDao(); dao.setMybatisTemplate(sqlSessionTemplate()); return dao; } @Bean public GenericMybatisDao batchDao() throws Exception { GenericMybatisDao dao = new GenericMybatisDao(); dao.setMybatisTemplate(sqlSessionTemplateBatch()); return dao; } }
发表评论
-
简单的压测模拟
2018-05-11 19:52 675import java.time.Duration; i ... -
Java的驼峰与下划线的属性对象互相转换
2018-05-11 19:50 8426import com.xxxx.util.consta ... -
Elastic Search搜索实例
2019-06-16 18:30 646要从现在的公司离职了。记录一下自己针对我们的自己需求所做的搜索 ... -
针对基于Redis Cluster的接口数据缓存删除实现
2018-03-26 10:35 1251首先定义个工具interface,基于Java 8的实现. 主 ... -
简单ELK配合logback搭建日志监控中心
2018-03-20 17:30 1348今天得闲就自己搭了个ELK示例,过程挺简单的。 Elas ... -
spring的基于java的项目配置示例2
2018-03-20 17:32 853import com.xxx.support.config ... -
HttpClient实例
2018-03-16 08:15 665import java.io.IOException; ... -
基于spring data的Elastic Search的配置示例
2018-03-15 17:41 916基于spring data的Elastic Search的配置 ... -
方便jedis cluster操作的工具类
2018-03-15 17:37 3031由于redis的集群 redis cluster不支持keys ... -
爬虫基础类
2018-03-15 17:28 811自己封装的爬虫基础类。 public interfac ... -
基于AOP的ajax的referrer判断
2018-03-15 17:23 1566网页中ajax请求的referrer的值是当前域名。(其实这个 ... -
Java Timestamp从MySQL数据库取出的字符串转换为LocalDateTime
2016-01-26 16:08 9932最新在工作中使用了Java 8的LocalDate ... -
reviewC指针
2014-03-02 22:05 372由于要考试,有C的考核内容。所以今天把C拉出来又看了下,其实基 ... -
Python2.X内置函数学习
2013-12-19 21:52 11721.apply()函数 学过Python的都知道P ... -
学习Python中遇到的问题
2013-09-04 23:26 722最近学习Python中。 先上代码: # -*- codi ...
相关推荐
本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例,将持续更新…… 在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目...
这个"spring的Java项目"很可能是为了展示Spring框架的基础用法,帮助开发者理解和掌握Spring的核心概念。下面将详细解释Spring框架的一些关键知识点。 1. **IoC(Inversion of Control)控制反转**:Spring通过IoC...
本示例将详细介绍如何使用注解配置实现Spring框架的注入。 首先,我们需要了解几个关键的注解: 1. `@Component`:这是Spring中的基础组件注解,可以标记一个类为Spring管理的bean。例如,我们可以定义一个简单的...
Java EE是企业级应用开发的重要框架,而"精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码"的资源提供了丰富的实践学习材料,旨在帮助开发者深入了解和掌握Java后端开发技术。这个项目案例涵盖了四...
Java Spring框架是一个广泛...以上就是基于Java Spring框架的“待办事项”管理应用程序中涉及的主要知识点。通过学习和实践这个示例,开发者可以深入了解Spring框架如何在实际项目中发挥作用,提升开发效率和应用质量。
在本示例中,我们将深入探讨如何利用Java Spring Boot框架来执行一个基于RAG(Red-Amber-Green)架构的GenAI项目。RAG是一种广泛应用于项目管理的颜色代码系统,用于评估任务完成状态:红色代表问题,琥珀色表示部分...
在本示例中,我们探讨的是一个基于纯Java配置的Spring MVC项目。Spring MVC是Spring框架的一个重要模块,专门用于构建Web应用程序。它提供了一种模型-视图-控制器(MVC)架构,使得开发人员可以更有效地组织和管理...
【标题】"maven spring mvc示例源码"揭示了这是一个基于Maven构建的Spring MVC Java项目的实例。Spring MVC是Spring框架的一部分,用于构建Web应用程序,而Maven则是一个项目管理和综合工具,用于自动化构建、依赖...
本项目为基于Java语言的Spring框架设计的示例源码,包含37个文件,包括26个Java源文件、8个XML配置文件、1个Git忽略文件、1个Protocol Buffers文件以及1个Markdown文件。
spring-javaconfig-sample, Spring MVC/Spring Data JPA/Hibernate的spring JavaConfig示例 spring-配置示例自 spring 3.0以来,JavaConfig特性被包含在核心 spring 模块中。 因此Java开发人员可以将 spring bean...
在本文中,我们将深入探讨`spring_mongo`项目示例,这是一个基于Spring框架集成MongoDB数据库的应用程序实例。MongoDB是一个流行的NoSQL数据库,它以JSON格式存储数据,适合处理大规模、非结构化或半结构化数据。而...
6. **配置文件**:通常,这些配置会在Spring Batch的XML或Java配置文件中定义,包括Job、Step、Partitioner、TaskExecutor以及其他相关组件的设置。 在这个示例中,我们可能会看到如何通过XML或Java配置实现上述...
在压缩包`spring_mvc_01`中,可能包含了基本的Spring MVC项目结构,如`web.xml`配置文件、Spring MVC配置类、控制器类以及简单的JSP视图。通过分析这些文件,你可以更直观地学习如何配置和运行一个基本的Spring MVC...
在本文中,我们将深入探讨如何使用Spring MVC和Maven来构建一个Java项目。Spring MVC是Spring框架的一个模块,专门用于构建Web应用程序,而Maven则是一个项目管理工具,用于简化构建、依赖管理和项目文档的生成。 *...
本文将深入探讨Spring Boot基于Java的容器配置,通过示例代码帮助理解其工作原理和使用方法。 首先,Spring容器是Spring框架的核心,它负责管理对象的生命周期,包括创建、初始化、装配和销毁。Spring提供了多种...
SpringCloud是中国Java开发者广泛使用的微服务框架之一,它基于Netflix OSS构建,提供了众多服务治理功能,如服务发现、负载均衡、断路器、配置中心、API Gateway等,旨在简化分布式系统开发。本压缩包文件“Spring...
本项目是基于SpringCloud开发的微服务架构示例项目,包含749个文件,其中包括126个Java源代码文件、108个HTML文件、105个JavaScript脚本文件、79个JSP页面文件、78个Freemarker模板文件、63个CSS样式表文件、51个JPG...
首先,我们需要在Spring项目中配置BlazeDS。这包括在`web.xml`中添加BlazeDS的Servlet和监听器配置,以及在Spring配置文件中定义服务代理。这样,Spring的服务可以通过HTTP或AMF(Action Message Format)协议被Flex...
本示例将探讨如何在Spring框架中配置最基础的Web服务,特别关注的是基于CXF的Web服务。CXF是一个强大的开源框架,它支持SOAP和RESTful风格的Web服务,使得开发者能够方便地创建和消费Web服务。 首先,我们需要理解...