Menu

  • Home
  • Work
    • Java
    • Go
    • C
    • C++
    • JavaScript
    • PHP
    • Python
    • Architecture
    • Others
      • XML
      • Ruby
      • Perl
      • Lua
      • Rust
      • Network
      • IoT
      • GIS
      • AI
      • Math
      • RE
      • Graphic
    • OS
      • Linux
      • Windows
      • Mac OS X
    • Cloud
      • Virtualization
      • IaaS
      • PaaS
    • BigData
    • Database
      • MySQL
      • Oracle
    • Mobile
      • Android
      • IOS
    • Web
      • HTML
      • CSS
  • Life
    • Cooking
    • Travel
    • Gardening
  • Gallery
  • Video
  • Music
  • Essay
  • Home
  • Work
    • Java
    • Go
    • C
    • C++
    • JavaScript
    • PHP
    • Python
    • Architecture
    • Others
      • XML
      • Ruby
      • Perl
      • Lua
      • Rust
      • Network
      • IoT
      • GIS
      • AI
      • Math
      • RE
      • Graphic
    • OS
      • Linux
      • Windows
      • Mac OS X
    • Cloud
      • Virtualization
      • IaaS
      • PaaS
    • BigData
    • Database
      • MySQL
      • Oracle
    • Mobile
      • Android
      • IOS
    • Web
      • HTML
      • CSS
  • Life
    • Cooking
    • Travel
    • Gardening
  • Gallery
  • Video
  • Music
  • Essay

Tag Archives: Spring

Java

Spring Boot学习笔记

简介

Spring Boot是Spring的一个子项目,它让创建独立运行(通过java -jar)的、产品级别的Spring应用变得简单:

  1. 支持创建独立运行于JVM中的Spring程序
  2. 内嵌Tomcat、Jetty或者Undertow,不需要部署War包
  3. 简化Ma…
阅读全文
2 years ago
0
1
Java, Network

Spring对WebSocket的支持

简介

Spring 4.x引入了新的模块spring-websocket,对WebSocket提供了全面的支持,Spring的WebSocket实现遵循JSR-356(Java WebSocket API),并且添加了一些额外特性。

绝大部分现代浏览器均支持WebSocket,包括…

阅读全文
2 years ago
0
1
Java

Spring对JMS的支持

简介

Spring 提供了JMS的集成,简化JMS的使用,提供的API封装类似于Spring的JDBC集成。

JMS的功能大体上分为两类——接收、发送消息。Spring提供了:

  1. JmsTemplate来完成消息的发送、同步接收
  2. 消息监听器容器(message li…
阅读全文
4 years ago
0
Java

Spring配置:集成Hibernate、JacksonJSON、AspectJ等框架

本文提及的该套配置文件,覆盖了JavaEE项目开发的最常见需求,包括:依赖注入、事务控制、AOP、任务调度、缓存、MVC框架等方面的内容。 容易改变的配置项独立到属性文件中:
applicationConfig.properties
Shell
1
2
3
4
5
6
hibernateDialect=org.hibernate.dialect.MySQL5Dialect
#启用了log4jdbc支持
jdbcDriver=net.sf.log4jdbc.DriverSpy
jdbcDriverUrl=jdbc:log4jdbc:mysql://192.168.0.201:3306/initpemsdb1.1.1
jdbcUserName=root
jdbcPassword=root
Spring配置文件部分:
applicationContext.xml
XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?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"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:task="http://www.springframework.org/schema/task"
    xmlns:cache="http://www.springframework.org/schema/cache"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
        http://www.springframework.org/schema/task  http://www.springframework.org/schema/task/spring-task-3.0.xsd
        http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd
    ">
    <!-- 定义属性,在后面的配置中可以使用#{appCfg.xxx}引用 -->
    <util:properties id="appCfg" location="classpath:applicationConfig.properties" />
    <!-- 包扫描配置 -->
    <context:component-scan base-package="cc.gmem.demo">
        <!-- 去除Java Config类 -->
        <context:exclude-filter type="annotation" expression="org.springframework.context.annotation.Configuration" />
        <!-- 去除Spring MVC类 -->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        <!-- 匹配AspectJ Pattern的类被去除 -->
        <context:exclude-filter type="aspectj" expression="cc.gmem.demo.aop.web.*" />
    </context:component-scan>
    <!-- 启用注解支持 -->
    <context:annotation-config />
    <!-- 支持@Configurable注解 -->
    <context:spring-configured />
    <!--  启用注解方式的事务:基于AspectJ织入 -->
    <tx:annotation-driven transaction-manager="txManager" mode="aspectj" />
    <!--  启用注解方式的缓存配置:基于AspectJ织入 -->
    <cache:annotation-driven cache-manager="cacheManager" mode="aspectj" />
    <!--  启用注解方式的任务执行(例如@Async):基于AspectJ织入 -->
    <task:annotation-driven executor="taskExecutor" mode="aspectj" />
    
    <!--  任务调度器配置,pool-size为线程池大小,限制了同时最多被调度的任务 -->
    <task:scheduler pool-size="100" id="scheduler" />
    <!-- 任务计划列表,支持固定频率、固定延迟、Cron表达式等 -->
    <task:scheduled-tasks scheduler="scheduler">
        <task:scheduled fixed-rate="120000" method="run" ref="hibernateStatisticsMonitor" />
    </task:scheduled-tasks>
    <!-- 任务执行器,用于异步执行任务 -->
    <task:executor id="taskExecutor" keep-alive="3600" pool-size="10-100" queue-capacity="10000" rejection-policy="CALLER_RUNS" />
    <!-- 引入其它Spring配置文件 -->
    <import resource="report-and-etl.xml" />  
    <!-- Hibernate配置  -->
    <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
        <property name="alias" value="connectionPool" />
        <property name="driver" value="#{appCfg.jdbcDriver}" />
        <property name="driverUrl" value="#{appCfg.jdbcDriverUrl}" />
        <property name="user" value="#{appCfg.jdbcUserName}" />
        <property name="password" value="#{appCfg.jdbcPassword}" />
        <property name="statistics" value="10s" />
        <property name="minimumConnectionCount" value="10" />
        <property name="maximumConnectionCount" value="100" />
        <property name="simultaneousBuildThrottle" value="10" />
        <property name="maximumActiveTime" value="3600000" />
    </bean>
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" autowire="byName" />
    <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init="true" />
    <bean id="sessionFactory" p:dataSource-ref="dataSource" class="cc.gmem.demo.hibernate.AnnotationSessionFactoryBean" depends-on="appCfg" >
        <property name="packagesToScan">
            <list>
                <value>cc.gmem.demo.**.domain</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=#{appCfg.hibernateDialect}
                hibernate.jdbc.batch_size=30
                hibernate.show_sql=false
                hibernate.format_sql=true
                hibernate.generate_statistics=true
                hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactory
                hibernate.current_session_context_class=org.springframework.orm.hibernate3.SpringSessionContext
                hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory
                hibernate.hbm2ddl.auto=update
                #启用二级缓存
                hibernate.cache.use_second_level_cache=true
                hibernate.cache.use_query_cache=true
                hibernate.cache.region.factory_class=org.hibernate.cache.SingletonEhCacheRegionFactory
            </value>
        </property>
    </bean>
    <!-- Spring缓存配置 -->
    <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
        <property name="cacheManager" ref="ehcache" />
    </bean>
    <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
        <property name="configLocation">
            <value>classpath:ehcache.xml</value>
        </property>
        <property name="shared" value="true" />
    </bean>
    <bean id="hibernateStatisticsMonitor" class="cc.gmem.demo.hibernate.HibernateStatisticsMonitor" />
    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory" />
    <!-- Velocity引擎配置 -->
    <bean id="velocityEngine" class="org.apache.velocity.app.VelocityEngine">
        <constructor-arg type="java.util.Properties">
            <value>
                <![CDATA[
                #{T(org.apache.velocity.runtime.RuntimeConstants).RUNTIME_LOG_LOGSYSTEM_CLASS}=org.apache.velocity.runtime.log.Log4JLogChute
                runtime.log.logsystem.log4j.logger=velocityLogger
                #{T(org.apache.velocity.runtime.RuntimeConstants).INPUT_ENCODING}=UTF-8
                #{T(org.apache.velocity.runtime.RuntimeConstants).OUTPUT_ENCODING}=UTF-8
                #{T(org.apache.velocity.runtime.RuntimeConstants).VM_PERM_ALLOW_INLINE}=true
                #{T(org.apache.velocity.runtime.RuntimeConstants).RESOURCE_LOADER}=class
                #{T(org.apache.velocity.runtime.RuntimeConstants).PARSER_POOL_SIZE}=100
                class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
                ]]>
            </value>
        </constructor-arg>
    </bean>
    <!--国际化支持-->
    <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
         <property name="basenames">
             <list>
                 <value>classpath:message.gmemdemo</value>
             </list>
         </property>
         <property name="defaultEncoding" value="UTF-8" />
         <property name="cacheSeconds" value="5" />
    </bean>
    <!--Jackson JSON -->
    <bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper" autowire="byType" />
    <!-- Spring类型转换服务,特别是用于时间日期格式转换 -->
    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
               <bean class="net.greenmemory.spring.converter.DateTimeConvertor">
                    <constructor-arg>
                       <array>
                            <value>yyyy-MM-dd</value>
                           <value>yyyy-MM-dd HH:mm:ss</value>
                           <value>yyyy-MM-dd HH:mm:ss.SSS</value>
                       </array>
                   </constructor-arg>
                </bean>
            </set>
       </property>
       <property name="formatters">
          <set>
              <bean class="org.springframework.format.datetime.DateFormatter">
                  <constructor-arg>
                      <value>yyyy-MM-dd</value>
                  </constructor-arg>
               </bean>
           </set>
       </property>
       <property name="formatterRegistrars">
           <set>
           </set>
       </property>
    </bean>
</beans>
Spring MVC配置文件部分: ehcache配置部分: Web.xml配置(使用了Spring的JavaConfig): Java Config类: Maven依赖包列表: Mave… 阅读全文
7 years ago
0
Java

基于JavaConfig方式的Spring+Hibernate集成

JavaConfig类
包含Spring、Hibernate、事务管理等功能的样例
BeanDefinitionRegistrar.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package sparknet.wnet.saic.intf.spring;
 
import java.io.IOException;
import java.util.Properties;
 
import javax.inject.Inject;
import javax.sql.DataSource;
 
import net.greenmemory.breeze.persist.OracleProxoolDataSource;
import net.greenmemory.commons.db.QueryRunner;
import net.greenmemory.commons.lang.NumberUtils;
import net.greenmemory.spring.core.io.ClassPathResource;
 
import org.hibernate.SessionFactory;
import org.springframework.aop.framework.autoproxy.InfrastructureAdvisorAutoProxyCreator;
import org.springframework.beans.factory.BeanInitializationException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.context.annotation.FilterType;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.hibernate3.HibernateTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.AnnotationTransactionAttributeSource;
import org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor;
import org.springframework.transaction.interceptor.TransactionInterceptor;
 
import cc.gmem.tools.hibernatetools.spring.Hibernate3LocalSessionFactoryBean;
 
@Configuration
@ComponentScan (
        basePackages = { "cc.gmem.saic", "cc.gmem.intf" },
        excludeFilters = { @Filter ( type = FilterType.ANNOTATION, value = Configuration.class ) } )
@EnableAspectJAutoProxy
public class BeanDefinitionRegistrar
{
 
    @Inject
    private ApplicationContext applicationContext;
 
    @Bean ( name = "cfg" )
    public Properties getAppConfig()
    {
        Properties props = new Properties();
        try
        {
            props.load( new ClassPathResource( "wsi.properties" ).getInputStream() );
        }
        catch ( IOException e )
        {
            throw new BeanInitializationException( e.getMessage(), e );
        }
        return props;
    }
 
    @Bean ( name = "dataSource" )
    public DataSource getDataSource()
    {
        OracleProxoolDataSource dataSource = new OracleProxoolDataSource();
        dataSource.setAlias( getAppConfig().getProperty( "jdbc.alias" ) );
        dataSource.setDriver( getAppConfig().getProperty( "jdbc.driverClass" ) );
        dataSource.setDriverUrl( getAppConfig().getProperty( "jdbc.url" ) );
        dataSource.setUser( getAppConfig().getProperty( "jdbc.user" ) );
        dataSource.setPassword( getAppConfig().getProperty( "jdbc.password" ) );
        dataSource.setMinimumConnectionCount( NumberUtils.toInt( getAppConfig().getProperty( "jdbc.minimumConnectionCount" ), 10 ) );
        dataSource.setMaximumConnectionCount( NumberUtils.toInt( getAppConfig().getProperty( "jdbc.maximumConnectionCount" ), 100 ) );
        dataSource.setSimultaneousBuildThrottle( NumberUtils.toInt( getAppConfig().getProperty( "jdbc.simultaneousBuildThrottle" ), 50 ) );
        dataSource.setMaximumActiveTime( NumberUtils.toInt( getAppConfig().getProperty( "jdbc.maximumActiveTime" ), 1200000 ) );
        dataSource.setEncrypted( false );
        dataSource.init();
        return dataSource;
    }
 
    @Bean ( name = "sessionFactory" )
    public SessionFactory getSessionFactory() throws Exception
    {
        Hibernate3LocalSessionFactoryBean bean = new Hibernate3LocalSessionFactoryBean();
        bean.setApplicationContext( applicationContext );
        bean.setDataSource( getDataSource() );
        bean.setMappingResources( new String[] { "wnetJhInterface.hbm.xml" } );
        bean.setAutoRegister( true );
        Properties hibernateProperties = new Properties();
        hibernateProperties.setProperty( "hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect" );
        hibernateProperties.setProperty( "hibernate.jdbc.batch_size", "100" );
        hibernateProperties.setProperty( "hibernate.default_entity_mode", "dom4j" );
        hibernateProperties.setProperty( "hibernate.transaction.factory_class", "org.hibernate.transaction.JDBCTransactionFactory" );
        hibernateProperties.setProperty( "hibernate.current_session_context_class", "org.springframework.orm.hibernate3.SpringSessionContext" );
        bean.setHibernateProperties( hibernateProperties );
        bean.afterPropertiesSet();
        return bean.getObject();
    }
 
    @Bean ( name = "txManager" )
    public PlatformTransactionManager getTransactionManager() throws Exception
    {
        HibernateTransactionManager txMgr = new HibernateTransactionManager();
        txMgr.setSessionFactory( getSessionFactory() );
        return txMgr;
    }
 
    @Bean ( name = "jdbcTemplate" )
    public JdbcTemplate getJdbcTemplate()
    {
        return new JdbcTemplate( getDataSource() );
    }
 
    @Bean ( name = "queryRunner" )
    public QueryRunner getQueryRunner()
    {
        return new QueryRunner( getDataSource() );
    }
 
    @Bean
    public AnnotationTransactionAttributeSource transactionAttributeSource()
    {
        return new AnnotationTransactionAttributeSource();
    }
 
    @Bean
    public TransactionInterceptor transactionInterceptor() throws Exception
    {
        return new TransactionInterceptor( getTransactionManager(), transactionAttributeSource() );
    }
 
    @Bean
    public TransactionAttributeSourceAdvisor internalTransactionAdvisor() throws Exception
    {
        return new TransactionAttributeSourceAdvisor( transactionInterceptor() );
    }
 
    @Bean
    public InfrastructureAdvisorAutoProxyCreator internalAutoProxyCreator()
    {
        return new InfrastructureAdvisorAutoProxyCreator();
    }
}
初始化Spring ApplicationContext的代码
Java
1
2
ApplicationContext ctx = new AnnotationConfigApplicationContext(BeanDefinitionRegistrar.class);
DataSource ds= ctx.getBean(DataSource.class);
阅读全文
7 years ago
0
Architecture, Java

AspectJ编程学习笔记

AOP基本概念
名词  含义
切面(方面,Aspect) 一个关注点的模块化,这个关注点实现可能横切(crosscutting)多个对象切面的例子包括:事务控制、日志记录、权限控制等在AspectJ中,切面表现为Java类,其源码具有AspectJ的特殊语法增强,…
阅读全文
8 years ago
0
14
Java

Spring与Quartz的任务调度比较

任务调度代码比较
Spring 2.x 任务调度示例
XHTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<bean id="demoJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <!-- 目标Bean -->
    <property name="targetObject">
        <bean class="cc.gmem.demo.DemoService" />
    </property>
    <!-- 目标方法 -->
    <property name="targetMethod" value="doStuff" />
    <!-- 防止并发执行 -->
    <property name="concurrent" value="false" />
</bean>
<!-- 简单触发器 -->
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail" ref="demoJob" />
    <!-- 启动后,调度开始的时间 -->
    <property name="startDelay" value="0" />
    <!-- 每隔2000ms调度一次 -->
    <property name="repeatInterval" value="2000" />
</bean>
<!-- Cron触发器 -->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="demoJob" />
    <property name="cronExpression" value="15 0/2 * * * ?" />
</bean>
<!-- 调度工厂Bean -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="simpleTrigger" />
            <ref bean="cronTrigger" />
        </list>
    </property>
</bean>
Spring 3.x 任务调度示例
配置文件方式
XHTML
1
2
3
4
5
6
7
<!--  任务调度器配置,pool-size为线程池大小,限制了同时最多被调度的任务 -->
<task:scheduler pool-size="100" id="scheduler" />
<!-- 任务计划列表,支持固定频率、固定延迟、Cron表达式等 -->
<task:scheduled-tasks scheduler="scheduler">
    <task:scheduled fixed-rate="120000" method="doStuff" ref="demoService" />
    <task:scheduled cron="15 0/2 * * * ?" method="doStuff" ref="demoService" />
</task:scheduled-tasks>
注解方式 如果使用该方式,必须声明task:annotation-driven,如果不使用aspectj,则mode应设置为proxy。 在Service类中,使用@Scheduled来标注需要调度的方法
Quartz任务调度示例
特性比较
比较项 Spring2.x Spring3.x Quartz
优…
阅读全文
8 years ago
0
Java

Spring知识集锦

配置
Spring各种注入方式的区别
注入方式  说明 
@Resource 来源:JSR250 (Common Annotations for Java)
注入方式:
  1. 默认byName注入
  2. 通过@Qualifier可以强制 byQualifier。注意:如果byQual…
阅读全文
8 years ago
0

Recent Posts

  • LaTex语法速查
  • Ginkgo学习笔记
  • Kubernetes端到端测试
  • 利用kind搭建本地K8S集群
  • 如何在Pod中执行宿主机上的命令
ABOUT ME

汪震 | Alex Wong

江苏淮安人,现居北京,热爱软件技术,努力成为一名优秀的全栈工程师。

GitHub:gmemcc

Git:git.gmem.cc

Email:gmemjunk@gmem.cc@me.com

ABOUT GMEM

绿色记忆是我的个人网站,域名gmem.cc中G是Green的简写,MEM是Memory的简写,CC则是我的小天使彩彩名字的简写。

我在这里记录自己的工作与生活,同时和大家分享一些编程方面的知识。

GMEM HISTORY
v2.00:微风
v1.03:单车旅行
v1.02:夏日版
v1.01:未完成
v0.10:彩虹天堂
v0.01:阳光海岸
MIRROR INFO
Meta
  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
Recent Posts
  • LaTex语法速查
    基本 控制序列 所谓控制序列,是以\开头,以第一个空格或非字母字符结束的一段序列。控制序列不会输出到文档中, ...
  • Ginkgo学习笔记
    简介 Ginkgo /ˈɡɪŋkoʊ / 是Go语言的一个行为驱动开发(BDD, Behavior-Drive ...
  • Kubernetes端到端测试
    简介 Kubernetes提供了一个端到端(E2E,从用户而非开发人员的角度)的测试框架,确保K8S代码库的行 ...
  • 利用kind搭建本地K8S集群
    简介 Kind是用于在本机运行K8S集群的工具,和Minikube不同,Kind创建的集群是多“节点”的,每个 ...
  • 如何在Pod中执行宿主机上的命令
    基础知识回顾 要回答标题中的疑问,我们首先要清楚,Pod是什么? Pod的翻译叫容器组,顾名思义,是一组容器 ...
  • Python单元测试
    unittest 简介 属于标准库的一部分,类似于JUnit。下面是一个基本的例子: # 编写测试用例模块 ...
  • dmh-1 2019年10月大明湖畔

  • jinan-1 济南之夜

  • jjt-1 2019年10月红窑金鸡坨
    我的老家,涟水红窑的顶级土味风景名胜

  • 孩子们 阔别十年
    十年后再次来到云龙湖,从一个人到一家人。

  • Go应用性能剖析
    简介 Go SDK自带了Profiling库,可以用来识别程序的缺陷、性能瓶颈。内置以下剖析能力: CP ...
  • works-of-wjh-1 汪静好作品(一)

  • Kubernetes故障检测和自愈
    前言 在Kubernetes日常运维过程中,会出现各种各样的问题,例如: 节点CNI不可用,其它节点无法 ...
  • Draft学习笔记
    简介 Draft是微软的开源项目,目标是让构建K8S应用程序变得简单: draft create 基于D ...
  • baiyangdian-1 2019年8月白洋淀

  • Argo学习笔记
    简介 整个Argoproj项目包含4个组件: Argo Workflows,即上述引擎 Argo CD ...
  • Jenkins插件开发
    插件开发环境(Maven) 通常我们基于Maven来开发Jenkins插件。 添加Jenkins仓库 修改 ...
  • impression-sunrise-1 日出•印象
    Apple Pencil初体验。

TOPLINKS
  • Zitahli's blue 91 people like this
  • 汪静好 61 people like this
  • 梦中的婚礼 52 people like this
  • 那年我一岁 36 people like this
  • 为了爱 28 people like this
  • 小绿彩 26 people like this
  • 彩虹姐姐的笑脸 24 people like this
  • 亚龙湾之旅 1 people like this
  • 汪昌博 people like this
  • 2013年11月香山 10 people like this
  • 2013年7月秦皇岛 6 people like this
  • 2013年6月蓟县盘山 5 people like this
  • 2013年2月梅花山 2 people like this
  • 2013年淮阴自贡迎春灯会 3 people like this
  • 2012年镇江金山游 1 people like this
  • 2012年徽杭古道 9 people like this
  • 2011年清明节后扬州行 1 people like this
  • 2008年十一云龙公园 5 people like this
  • 2008年之秋忆 7 people like this
  • 老照片 13 people like this
  • 火一样的六月 16 people like this
  • 发黄的相片 3 people like this
  • IntelliJ IDEA知识集锦 59 people like this
  • Cesium学习笔记 46 people like this
  • PhoneGap学习笔记 32 people like this
  • NaCl学习笔记 32 people like this
  • 使用Oracle Java Mission Control监控JVM运行状态 29 people like this
  • 基于Kurento搭建WebRTC服务器 28 people like this
  • 基于Calico的CNI 26 people like this
  • Three.js学习笔记 22 people like this
  • 齐塔莉鸟瞰 20 people like this
Tag Cloud
ActiveMQ AngularJS Apache AspectJ CDT Chrome Command Cordova Coroutine CXF Cygwin Django Docker Eclipse ExtJS F7 FAQ GNU Groovy Hibernate HTTP IntelliJ IO编程 JacksonJSON JMS jQuery JSON JVM K8S LB libvirt Linux编程 LOG Maven MinGW Mock MongoDB Monitoring Multimedia MVC MySQL netfs Netty Nginx NIO Node.js NoSQL Oracle PDT Photoshop PHP Porting RPC Scheduler ServiceMesh SNMP Spring SSL svn Tomcat TSDB Ubuntu WebGL WebRTC WebService WebSocket wxWidgets XDebug XML XPath XRM ZooKeeper 亚龙湾 单元测试 学习笔记 实时处理 容器化 并发编程 彩姐 性能调优 文本处理 新特性 架构模式 系统编程 网络编程 视频监控 设计模式 远程调试 配置文件 齐塔莉
Recent Comments
  • Android Gradle 笔记 – 小小程序猿 on Gradle学习笔记
  • NUCsimple on Go应用性能剖析
  • Alex on Go应用性能剖析
  • NUCsimple on Go应用性能剖析
  • Alex on Argo学习笔记
  • haitongz on Argo学习笔记
  • Alex on H.264学习笔记
  • james ma on H.264学习笔记
  • zzq1314zll on Apache Storm学习笔记
  • myseemylife on HTML5视频监控技术预研
  • Alex on Protocol Buffers初探
  • 开少 on Protocol Buffers初探
  • Android混淆(ProGuard)从0到1 - 算法网 on ProGuard学习笔记
  • C++ WebSocket 库 - 算法网 on 基于C/C++的WebSocket库
  • Alex on Cesium学习笔记
  • Goldberg on Cesium学习笔记
  • General on 基于Rook的Kubernetes存储方案
  • rain on 基于Kurento搭建WebRTC服务器
  • rain on 基于Kurento搭建WebRTC服务器
  • rain on 基于Kurento搭建WebRTC服务器
  • Alex on 基于Rook的Kubernetes存储方案
  • General on 基于Rook的Kubernetes存储方案
  • Alex on 基于Kurento搭建WebRTC服务器
©2005-2019 Gmem.cc | Powered by WordPress