Ehcache 缓存刷到磁盘后,重启Tomcat后,产生的.index文件被删除?????

Ehcache 缓存刷到磁盘后,重启Tomcat后,产生的.index文件被删除?????
code:
1 ehcache.xml
<!-- 永久有效 -->
maxElementsInMemory="10000"
diskPersistent="true"
maxElementsOnDisk="10000"
eternal="true"
overflowToDisk="true"
diskSpoolBufferSizeMB="200"
memoryStoreEvictionPolicy="FIFO"
/>
2/ java代码
static{
// System.setProperty("net.sf.ehcache.enableShutdownHook","true");
// System.setProperty(net.sf.ehcache.CacheManager.ENABLE_SHUTDOWN_HOOK_PROPERTY,"true");
URL url = EhCacheUtil.class.getClassLoader().getResource(EhCacheUtil.EHCACHEURL);
singletonManager = CacheManager.create(url);
singletonManager = new CacheManager(url);
out = singletonManager.getCache("empSignOutCache");

    第二次运行这一句的时候会删除.index
    out = singletonManager.getCache("empSignOutCache"); 

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Ehcache 为啥缓存到磁盘中去

<?xml version="1.0" encoding="ISO-8859-1"?> <ehcache> <diskstore path="java.io.tmpdir"></diskstore> <defaultcache name="spring" maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" maxElementsOnDisk="10000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"> </defaultcache> <BootstrapCacheLoaderFactory class="net.sf.ehcache.store.DiskStoreBootstrapCacheLoaderFactory" properties="bootstrapAsynchronously=true" /> </ehcache> <!--ehcache 缓存--> <!--开启扫描--> <cache:annotation-driven cache-manager="cacheManager"></cache:annotation-driven> <bean id="temp" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache.xml"></property> </bean> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> <property name="cacheManager" ref="temp"></property> </bean>

springboot使用ehcache缓存,有些数据重启后不希望消失,怎么持久化到硬盘并在重启后恢复呢

如果每次调flush刷新到硬盘在性能上会得不偿失,所以我希望的是在tomcat关闭时将数据刷到硬盘并在启动时恢复,目前 在启动类上加上了监听 ``` @ServletComponentScan(basePackageClasses = {net.sf.ehcache.constructs.web.ShutdownListener.class}) ``` ![图片说明](https://img-ask.csdn.net/upload/201911/23/1574475880_387136.png) 并没有什么作用,不知道哪出问题了

求解使用ehcache,本地磁盘缓存不生成Index文件

我使用的是spring boot+ehcache,这是我的ehcache缓存文件, # 没有index文件,所以服务器重启后不能将磁盘缓存读入到内存。 求解 ![图片说明](https://img-ask.csdn.net/upload/201707/08/1499502761_413431.png)

项目在tomcat运行几天以后会ehcache错误,重启以后又可以正常运行,具体错误信息如下:

2017-07-05 09:56:56,466 [ajp-bio-8021-exec-10] ERROR [500.jsp] - net.sf.ehcache.CacheException: java.io.OptionalDataException org.apache.shiro.cache.CacheException: net.sf.ehcache.CacheException: java.io.OptionalDataException at org.apache.shiro.cache.ehcache.EhCache.get(EhCache.java:85) at org.apache.shiro.realm.AuthorizingRealm.getAuthorizationInfo(AuthorizingRealm.java:328) at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:461) at org.apache.shiro.realm.AuthorizingRealm.isPermitted(AuthorizingRealm.java:457) at org.apache.shiro.authz.ModularRealmAuthorizer.isPermitted(ModularRealmAuthorizer.java:223) at org.apache.shiro.authz.ModularRealmAuthorizer.checkPermission(ModularRealmAuthorizer.java:322) at org.apache.shiro.mgt.AuthorizingSecurityManager.checkPermission(AuthorizingSecurityManager.java:137) at org.apache.shiro.subject.support.DelegatingSubject.checkPermission(DelegatingSubject.java:205) at org.apache.shiro.authz.aop.PermissionAnnotationHandler.assertAuthorized(PermissionAnnotationHandler.java:74) at org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor.assertAuthorized(AuthorizingAnnotationMethodInterceptor.java:84) at org.apache.shiro.authz.aop.AnnotationsAuthorizingMethodInterceptor.assertAuthorized(AnnotationsAuthorizingMethodInterceptor.java:100) at org.apache.shiro.authz.aop.AuthorizingMethodInterceptor.invoke(AuthorizingMethodInterceptor.java:38) at org.apache.shiro.spring.security.interceptor.AopAllianceAnnotationsAuthorizingMethodInterceptor.invoke(AopAllianceAnnotationsAuthorizingMethodInterceptor.java:115) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644) at com.oc.modules.fb.web.InfoController$$EnhancerBySpringCGLIB$$1cc7bd3.list(<generated>) at sun.reflect.GeneratedMethodAccessor918.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: net.sf.ehcache.CacheException: java.io.OptionalDataException at net.sf.ehcache.store.disk.DiskStorageFactory.retrieve(DiskStorageFactory.java:914) at net.sf.ehcache.store.disk.Segment.decodeHit(Segment.java:183) at net.sf.ehcache.store.disk.Segment.get(Segment.java:221) at net.sf.ehcache.store.disk.DiskStore.get(DiskStore.java:467) at net.sf.ehcache.store.FrontEndCacheTier.get(FrontEndCacheTier.java:201) at net.sf.ehcache.Cache.searchInStoreWithoutStats(Cache.java:2070) at net.sf.ehcache.Cache.get(Cache.java:1590) at org.apache.shiro.cache.ehcache.EhCache.get(EhCache.java:73) ... 79 more 看哪位大神遇到过此类问题,麻烦不吝赐教,在此先谢过。 (备注:我没有在同一个tomcat下部署多个项目,ehcache存储的目录位tomcat下的temp目录)

ehcache缓存几万条图片信息的思路,有源码更棒!

请教大佬们一个问题, 我现在要从数据库一次性查几万条数据存到ehcache缓存中,是把这些数据放到list然后用一个key对应这个list,还是一条数据对应一个key存进去, 业务需求:数据库中有几十万条图片相关信息,现在需要把这些信息从数据库取出来放到ehcache缓存中,之后会从缓存中取出做一些其他操作,请大佬们讲讲思路,或者该怎么存,

ehcache.xml怎么清除缓存

ehcache怎么清除缓存呢,也就是说我想每5分钟清除一下缓存? <cache name="resCache" maxElementsInMemory="10000000" eternal="true" timeToIdleSeconds="36" timeToLiveSeconds="18" overflowToDisk="false" maxElementsOnDisk="200000"> 我应该在这里面怎么配置呢

spring MVC 3.1 ehcache 缓存无效

<bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache.xml" /> </bean> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> <property name="cacheManager" ref="cacheManagerFactory" /> </bean> 我的spring 中配置的ehcache <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> <diskStore path="java.io.tmpdir"/> <defaultCache maxElementsInMemory="1000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="false"/> <cache name="theCache" maxElementsInMemory="2000" eternal="false" overflowToDisk="true" diskPersistent="true"/> <cache name="cacheTest" maxElementsInMemory="2000" eternal="false" overflowToDisk="true" diskPersistent="true"/> </ehcache> ehcache.xml 的配置 下面就是我的service 层 @Cacheable(value="theCache",key="'customer'") public Customer GetCustomerByCid(int cid){ System.out.print("----------------------------------------------------------"); return cd.GetCustomerByCid(cid); } 结果 测试点击两次查询tomcat打印: 第一次: DEBUG - Last-Modified value for [/jxc/customer/GetCustomerByCid] is: -1 ----------------------------------------------------------DEBUG - Creating a new SqlSession DEBUG - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@63921a] was not registered for synchronization because synchronization is not active DEBUG - Fetching JDBC Connection from DataSource DEBUG - JDBC Connection [jdbc:mysql://192.168.1.6:3306/lyjxc?useUnicode=true&characterEncoding=utf-8, UserName=root@7-PC, MySQL-AB JDBC Driver] will not be managed by Spring DEBUG - ooo Using Connection [jdbc:mysql://192.168.1.6:3306/lyjxc?useUnicode=true&characterEncoding=utf-8, UserName=root@7-PC, MySQL-AB JDBC Driver] DEBUG - ==> Preparing: select * from Customer where cid=? DEBUG - ==> Parameters: 18(Integer) 第二次: DEBUG - Last-Modified value for [/jxc/customer/GetCustomerByCid] is: -1 ----------------------------------------------------------DEBUG - Creating a new SqlSession DEBUG - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@19cdf24] was not registered for synchronization because synchronization is not active DEBUG - Fetching JDBC Connection from DataSource DEBUG - JDBC Connection [jdbc:mysql://192.168.1.6:3306/lyjxc?useUnicode=true&characterEncoding=utf-8, UserName=root@7-PC, MySQL-AB JDBC Driver] will not be managed by Spring DEBUG - ooo Using Connection [jdbc:mysql://192.168.1.6:3306/lyjxc?useUnicode=true&characterEncoding=utf-8, UserName=root@7-PC, MySQL-AB JDBC Driver] DEBUG - ==> Preparing: select * from Customer where cid=? DEBUG - ==> Parameters: 18(Integer) 很明显是访问了两次数据库,但是 我不知道为什么缓存无效,求大牛指教。。。

ehcache 缓存失效时间配置基础问题?

本人需要配置系统中所有缓存失效时间为5分钟,配置如下: ``` <?xml version="1.0" encoding="GB2312"?> http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd"> <diskStore path="java.io.tmpdir"/> <defaultCache maxElementsInMemory="500" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="300" overflowToDisk="true" /> </ehcache> ``` 请问,上面这种配置有什么错误吗?因为,我这样配置之后,5分钟之后仍然可以访问缓存。 我将缓存配置具体到每一个缓存,5分钟之后,缓存就过期。 ``` <?xml version="1.0" encoding="GB2312"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd"> <diskStore path="java.io.tmpdir"/> <defaultCache maxElementsInMemory="500" eternal="false" timeToIdleSeconds="3600" timeToLiveSeconds="3600" overflowToDisk="true" /> <cache name="HomeGuideCache" maxElementsInMemory="10000" eternal="false" overflowToDisk="false" timeToIdleSeconds="3600" timeToLiveSeconds="3600" memoryStoreEvictionPolicy="LFU" /> <cache name="IHealthTypecache" maxElementsInMemory="10000" eternal="false" overflowToDisk="false" timeToIdleSeconds="3600" timeToLiveSeconds="3600" memoryStoreEvictionPolicy="LFU" /> </ehcache> ```

怎样对从ehcache缓存中取出的对象修改而不改变缓存中的对象

使用缓存放入了对象,取出来修改属性后,发现缓存中的对象也修改了,也就是说缓存的是引用吗,如果想要对取出的对象操作而不改变缓存中的对象,要怎么做。 ``` List<Record> list = cache.get(cacheName, key); for(Record r:list){ if(r=="某条件"){ list.remove(r); } } System.out.println(list); ``` 第一次访问会修改list的内容,同样缓存内容被修改了。第二次访问,数据已经不正确了。

spring整合ehcache缓存不了数据

大部分按照这个帖子上面说的做的http://www.cnblogs.com/lcuzhanglei/archive/2012/05/31/2528124.html, 但是数据就是缓存不了,每次测试都访问数据库。网上也没搜到答案 这个是我的ehcache.xml配置文件 [code="java"] <?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true" monitoring="autodetect"> <diskStore path="d:\\temp\\cache"/> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" maxElementsOnDisk="10000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" /> <cache name="demoCache" maxElementsInMemory="10000" maxElementsOnDisk="1000" eternal="false" overflowToDisk="true" diskSpoolBufferSizeMB="20" timeToIdleSeconds="300" timeToLiveSeconds="600" memoryStoreEvictionPolicy="LFU" /> </ehcache> [/code] spring配置文件 [code="java"] <?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" default-lazy-init="true"> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation"> <value>classpath:ehcache.xml</value> </property> </bean> <bean id="deptCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean"> <property name="cacheManager" ref="cacheManager"/> <property name="beanName" value="democache"/> </bean> <bean id="cacheInterceptor" class="com.xiaolu.interceptor.MethodCacheInterceptor"> <property name="cache" ref="deptCache"/> </bean> <bean id="methodCachePointcutAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <property name="advice" ref="cacheInterceptor"/> <property name="patterns"> <list> <value>.*getAllDept</value> </list> </property> </bean> <bean id="deptService" class="com.xiaolu.service.DeptService"/> <bean id="proxyFactoryBean" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="target" ref="deptService"/> <property name="interceptorNames"> <list> <value>methodCachePointcutAdvisor</value> </list> </property> </bean> </beans> [/code] 监听器 [code="java"] package com.xiaolu.interceptor; import java.io.Serializable; import net.sf.ehcache.Cache; import net.sf.ehcache.Element; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; import org.springframework.beans.factory.InitializingBean; import org.springframework.util.Assert; public class MethodCacheInterceptor implements MethodInterceptor,InitializingBean { private Cache cache; @Override public Object invoke(MethodInvocation invocation) throws Throwable { String targetName = invocation.getThis().getClass().getName(); String methodName = invocation.getMethod().getName(); Object[] arguments = invocation.getArguments(); Object result = null; String cacheKey = getCacheKey(targetName, methodName, arguments); System.out.println("cacheKey:"+cacheKey); Element element = null; System.out.println("-----1-----"); synchronized(this){ element = cache.get(cacheKey); if(null == element){ result = invocation.proceed(); System.out.println("-----2----"); element = new Element(cacheKey, (Serializable)result); cache.put(element); } } return element.getValue(); } @Override public void afterPropertiesSet() throws Exception { Assert.notNull(cache, "A cache is required. Use setCache(Cache) to provide one."); } private String getCacheKey(String targetName,String methodName,Object[] arguments){ StringBuilder sb = new StringBuilder(); sb.append(targetName).append(".").append(methodName); if((arguments.length !=0)&&(arguments != null)){ for(int i=0;i<arguments.length;i++){ sb.append(".").append(arguments[i]); } } return sb.toString(); } public void setCache(Cache cache) { this.cache = cache; } } [/code] 访问数据库的类 [code="java"] package com.xiaolu.service; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.xiaolu.pojo.Dept; public class DeptService { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; public List<Dept> getAllDept(){ String sql = "select * from dept"; List<Dept> list = new ArrayList<Dept>(); try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger"); pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while(rs.next()){ Dept dept = new Dept(); dept.setDeptno(rs.getInt("deptno")); dept.setDname(rs.getString("dname")); dept.setLoc(rs.getString("loc")); list.add(dept); } } catch (Exception e) { e.printStackTrace(); } return list; } } [/code] 实体类 [code="java"] package com.xiaolu.pojo; import java.io.Serializable; public class Dept implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private int deptno; private String dname; private String loc; public int getDeptno() { return deptno; } public void setDeptno(int deptno) { this.deptno = deptno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } public String getLoc() { return loc; } public void setLoc(String loc) { this.loc = loc; } } [/code] 测试代码 [code="java"] package test; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.xiaolu.pojo.Dept; import com.xiaolu.service.DeptService; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; public class Test { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); DeptService service = (DeptService) context.getBean("proxyFactoryBean"); List<Dept> list = service.getAllDept(); for(Dept dept:list){ System.out.println(dept.getDname()); } } } [/code]

Ehcache缓存警告问题?

请教各位,我在spring+hibernate里配置Ehcache缓存,出现以下警告,请问是什么原因呢? 警告: Creating a new instance of CacheManager using the diskStorePath "D:\Apache Tomcat 6.0.18\temp" which is already used by an existing CacheManager. The source of the configuration was classpath. The diskStore path for this CacheManager will be set to D:\Apache Tomcat 6.0.18\temp\ehcache_auto_created_1262783591937. To avoid this warning consider using the CacheManager factory methods to create a singleton CacheManager or specifying a separate ehcache configuration (ehcache.xml) for each CacheManager instance. applicationContext.xml里 <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> ehcache.xml里 <ehcache> <diskStore path="java.io.tmpdir" /> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="60" timeToLiveSeconds="60" overflowToDisk="true" diskSpoolBufferSizeMB="30" maxElementsOnDisk="1000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="60" memoryStoreEvictionPolicy="LRU" /> </ehcache>

java项目中如何将map缓存改为ehcache缓存?

java项目中如何将map缓存改为ehcache缓存?各位大神帮帮忙 代码如下 这些缓存以前是放在map中,现在想放入ehcache缓存中 package gov.csc.ems.util.cache; import gov.csc.ems.basedata.code.model.Codebasdistrict; import gov.csc.ems.basedata.code.model.Codebassexualdistinction; import gov.csc.ems.basedata.code.service.ICodebasdistrictService; import gov.csc.ems.basedata.code.service.ICodebassexualdistinctionService; import gov.csc.ems.util.dataaccess.model.Emslisttablebase; import gov.csc.ems.util.dataaccess.model.Emslisttableconfig; import gov.csc.ems.util.servicebase.UtilFactory; import gov.csc.ems.util.sys.priv.model.Emsorg; import gov.csc.ems.util.sys.priv.model.Emspriv; import gov.csc.ems.util.sys.priv.model.Emsroleprivrel; import gov.csc.ems.util.sys.priv.model.Emsuser; import gov.csc.ems.util.sys.priv.util.IConstants; import gov.csc.ems.util.sys.priv.util.PrivServiceFactory; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import com.thtf.ezone.security.util.BeanUtil; public final class BaseCodeUtil { private static Map<String, String> orgMap;// ok private static Map<String, String> orgReverseMap;// ok private static Map<String, String> orgIdMap;// 没动 private static Map<String, String> orgParentMap;// ok private static Map orgObjectMap;// ok private static Map<String, String> districtMap;// ok private static Map<String, String> fullNamedistrictMap;// ok private static Map<String, String> parentDistrictMap;// private static Map<String, String> allDistrictMap;// ok private static Map<String, String> shortNameDistrictMap;// ok private static Map<String, Codebasdistrict> districtObjectMap;// ok private static Map<String, String> personMap;// not ok private static Map<String, Emsuser> userMap;// not ok private static Map<String, String> dutyPersonNameMap;// ok private static Map<String, String> dutyPersonOrgMap;// ok private static Map<String, String> dutyPersonSexMap;// ok //用户组 private static Map<String,String> usergroupMap; // // 性别MAP表 private static Map<String, Codebassexualdistinction> basesexMap; // // 机构 private static final String ALL_ORG_MAP = "all_org_map"; private static final String ORGCODE_BYNAME_MAP = "orgcode_byname_map"; private static final String ORG_PARENT_MAP = "orgparentmap"; private static final String ALL_ORG_MAP_OBJ = "all_org_map_obj"; private static final String RE_INIT_ORG = "re_init_org"; /** * 列表基础信息MAP */ private static Map<String, Emslisttablebase> tablebaseMap; public static Map getOrgMap() { return BaseCodeUtil.getOrgMapByParam(ALL_ORG_MAP); } /** * 根据参数取得org相关map flag=,返回key:,value: flag=,返回key:,value: * * @param flag * @return * @author guorj * @date May 7, 2009 */ private static Map getOrgMapByParam(String flag) { if (orgMap == null || orgReverseMap == null || orgParentMap == null || orgObjectMap == null || RE_INIT_ORG.equals(flag)) { orgMap = new LinkedHashMap<String, String>(); orgReverseMap = new LinkedHashMap<String, String>(); orgParentMap = new LinkedHashMap<String, String>(); orgObjectMap = new LinkedHashMap(); List list = null; list = UtilFactory.getEmsorgService().findAllEmsorg(); if (list != null) { for (Iterator iterator = list.iterator(); iterator.hasNext();) { Emsorg element = (Emsorg) iterator.next(); orgMap.put(element.getOrgcode(), element.getOrgname()); orgReverseMap.put(element.getOrgname(), element .getOrgcode()); orgParentMap .put(element.getOrgname(), element.getOrgcode()); orgObjectMap.put(element.getOrgcode(), element); } } } if (ALL_ORG_MAP.equals(flag)) { return orgMap; } if (ORGCODE_BYNAME_MAP.equals(flag)) { return orgReverseMap; } if (ORG_PARENT_MAP.equals(flag)) { return orgParentMap; } if (ALL_ORG_MAP_OBJ.equals(flag)) { return orgObjectMap; } return null; } }

Spring Boot自带的Tomcat配置SSL证书失败

申请的是阿里云的免费SSL证书,配置好后一直报错,排除了端口占用,密码不对等情况,非常郁闷 配置信息如下: ``` server: port: 443 max-http-header-size: 10240 ssl: key-store: classpath:./2831383_service.masterchinese.cn.pfx enabled: true key-store-type: PKCS12 key-store-password: RP1qV252 ``` 报错信息如下: ``` 2019-09-19 21:16:42.003 ERROR 14420 --- [ restartedMain] org.apache.catalina.util.LifecycleBase : Failed to start component [Connector[HTTP/1.1-443]] org.apache.catalina.LifecycleException: Protocol handler start failed at org.apache.catalina.connector.Connector.startInternal(Connector.java:1001) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:259) at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:197) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.startWebServer(ServletWebServerApplicationContext.java:311) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:164) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) at cn.stylefeng.guns.GunsApplication.main(GunsApplication.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) Caused by: java.lang.IllegalArgumentException: DerInputStream.getLength(): lengthTag=111, too big. at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:114) at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:85) at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:224) at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1067) at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1149) at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:561) at org.apache.catalina.connector.Connector.startInternal(Connector.java:998) ... 19 common frames omitted Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111, too big. at sun.security.util.DerInputStream.getLength(DerInputStream.java:599) at sun.security.util.DerValue.init(DerValue.java:391) at sun.security.util.DerValue.<init>(DerValue.java:332) at sun.security.util.DerValue.<init>(DerValue.java:345) at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1938) at java.security.KeyStore.load(KeyStore.java:1445) at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:179) at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:204) at org.apache.tomcat.util.net.jsse.JSSEUtil.getKeyManagers(JSSEUtil.java:203) at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:112) ... 25 common frames omitted 2019-09-19 21:16:42.009 INFO 14420 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2019-09-19 21:16:42.020 INFO 14420 --- [ restartedMain] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2019-09-19 21:16:42.026 ERROR 14420 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: The Tomcat connector configured to listen on port 443 failed to start. The port may already be in use or the connector may be misconfigured. Action: Verify the connector's configuration, identify and stop any process that's listening on port 443, or configure this application to listen on another port. 2019-09-19 21:16:42.031 INFO 14420 --- [ restartedMain] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor' 2019-09-19 21:16:42.042 INFO 14420 --- [ restartedMain] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closed 2019-09-19 21:16:42.044 INFO 14420 --- [ restartedMain] o.s.c.ehcache.EhCacheManagerFactoryBean : Shutting down EhCache CacheManager Process finished with exit code 0 ```

Ehcache淘汰缓存时占用CPU资源过大,如何优化这一过程?

目前的项目中需要加入大value(平均8M)结构型的缓存,使用了Springboot集成ehache,使用LFU淘汰策略,部署在8v32G的CentOS上,设置了-Xmx22g。 由于项目启动后需要缓存预热,而预热的数据量大于22G,在到达峰值进行LFU淘汰时CPU占用率750%-800%,后面JVM报错JVM appears hung: Timed out waiting for signal from JVM导致服务重启。 请问如何能避免缓存淘汰时的CPU高占用?或者如何能在预热时实时获取到目前ehcache缓存使用量并及时停止预热?

如何使Hibernate中EhCache缓存的Key能够动态设置

您好! 我现在在Hibernate中用EhCache做缓存,hibernate在对对象操作时自动缓存数据,但是缓存的key为对象的主键,我现在想对这个key在缓存前加上一个标识,因为我想对hibernate进行多schema扩展,所以如果用hibernate自己的缓存策略,相同的对象在schema切换后可能主键相同,那么缓存就会出现问题。求大牛帮忙下。谢谢! 伪代码描述如下: //前提,Schema1中已经缓存了主键为1的用户信息。 Session session = null; User user = null; //1、这里用Schema1创建Session,通过缓存获取主键为1的用户 session = Schema1.sessionFactory.openSession(); user = session.get(1); session.close(); //2、这里用Schema2创建Session,通过缓存获取主键为1的用户,但是 //拿出来的用户信息却是Schema1中的主键为1的用户信息,所以我想 //在hibernate进行二级缓存时,对缓存key进行操作,添加标识。 session = Schema2.sessionFactory.openSession(); user = session.get(1); session.close();

Tomcat报错,求大神解答

四月 01, 2017 8:44:55 上午 net.sf.ehcache.constructs.web.filter.Filter logThrowable 警告: Throwable thrown during doFilter on request with URI: /resources/style/font/awesome/css/font-awesome.min.css and Query: nulljava.io.IOException org.apache.catalina.connector.ClientAbortException: java.io.IOException at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:410) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:371) at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:435) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:423) at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:91) at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:2080) at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1026) at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:441) at javax.servlet.http.HttpServlet.service(HttpServlet.java:624) at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.sdkj.core.ehcache.PageCacheFiler.doFilter(PageCacheFiler.java:76) at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:86) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:147) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962) at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:270) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2536) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2525) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: java.io.IOException at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:205) at org.apache.coyote.http11.InternalAprOutputBuffer.access$100(InternalAprOutputBuffer.java:37) at org.apache.coyote.http11.InternalAprOutputBuffer$SocketOutputBuffer.doWrite(InternalAprOutputBuffer.java:234) at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:84) at org.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192) at org.apache.coyote.Response.doWrite(Response.java:499) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:405) ... 39 more

如何ssh的缓存改为Ehcache缓存?各位前辈帮帮忙?关于Ehcache方面的

如何ssh的缓存改为Ehcache缓存?各位前辈帮帮忙?关于Ehcache方面的

ehcache如何在程序启动的时候load以前保存在磁盘的数据

ehcache如何在程序启动的时候load以前保存在磁盘的数据

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

立即提问
相关内容推荐