OpenSessionInView里的Session不能自动关闭?

在Struts2+spring+hibernate集成的项目里,用到了spring的OpenSessionInViewFilter过滤器,来延长Session的生命周期,但在使用过程中,lasy加载正常是可以用的,就是session不会自动关闭。我查看源码里有下面一段
[code="java"]
public static void closeSession(Session session) {
if (session != null) {
logger.debug("Closing Hibernate Session");
try {
session.close();
}
catch (HibernateException ex) {
logger.debug("Could not close Hibernate Session", ex);
}
catch (Throwable ex) {
logger.debug("Unexpected exception on closing Hibernate Session", ex);
}
}
}
[/code]
上面的logger根本就没有输入,也就是说没有进入这个地方
[code="java"]
logger.debug("Closing single Hibernate Session in OpenSessionInViewFilter");
closeSession(sessionHolder.getSession(), sessionFactory);
[/code]
只运行了上面那个logger
不清楚是为什么,向高手请教~~~
[b]问题补充:[/b]
他是在完成response后,在过滤器最后关闭的,如果不关闭的话,他占用的数据库连接就没有关闭,一会连接就不够了。。

3个回答

OpenSessionInViewFilter过滤器,当然就不会close session,关闭了的话那在页面上怎么读!

应该不可能不关闭的,这就是为了web应用中的惰性加载定制的,

可能是你的场景什么的是不是有些问题,

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

我用的是struts+hibernate的项目,想解决hibernate延迟加载的问题而用opensessionInview,但是又不想用到spring的内容,用过滤器(filter)怎样实现呢,具体的类和方法最好给出来。

OpenSessionInViewFilter的问题(扩大session范围)!!

<p>这是我在web.xml里的配置</p> <p> </p> <pre name="code" class="java">&lt;filter&gt; &lt;filter-name&gt;OpenSessionInViewFilter&lt;/filter-name&gt; &lt;filter-class&gt; org.springframework.orm.hibernate3.support.OpenSessionInViewFilter &lt;/filter-class&gt; &lt;init-param&gt; &lt;param-name&gt;singleSession&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;OpenSessionInViewFilter&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt;</pre> <p> </p> <p>action:里PageResult&lt;UserInfo&gt; pageresult = userService.queryForPages(qo);<br>  List&lt;UserInfo&gt; list = pageresult.getPageresult();<br>  System.out.println("-----&gt;&gt;&gt;"+list);</p> <p> </p> <p>这个UserInfo里面 有一个属性:</p> <p>private List&lt;Resource&gt; resources = new ArrayList&lt;Resource&gt;();</p> <p>他们是1对多的关系,   </p> <p> </p> <p>问题是:  我在通过Userinfo获取resources的时候, 报错:</p> <p> </p> <p>failed to lazily initialize a collection of role: com.domain.UserInfo.resources, no session or session was closed</p> <p> </p> <p>我上面的配置错了吗???  OpenSessionInViewFilter这个不是可以帮我把session开到action层吗》?怎么不好用????????哪里写错了?</p>

使用hibernatetemplate就可以不用opensessioninview了吗

使用hibernatetemplate就可以不用opensessioninview了吗?hibernatetemplate是自己维护session还是使用osiv保存在LocalThread中的session?

关于项目夹杂了B/S和C/S中hibernateSession开关的问题

问题如下:在一个高速公路违章车辆管理项目中(总体是B/S,其中还有C/S),采用SSH技术架构,前端监测点监测车辆信息,比如说速度,车牌信息等,然后自动发送到后台中心进行业务处理,其中会有对数据库的操作,管理人员通过浏览器登录该系统,可以进行违章车辆查看等等一系列操作,在B/S这块,session都是采用Spring给提供好的过滤器,dao也是继承HibenateDaoSupport,没有疑问我现在遇到了这样一个问题,前端监测点当监测到车辆信息的时候,会自动发送相关车辆信息给后台业务层,感觉就像个事件一样,车辆触发了监控点,这样就不完全是B/S了,而是我开始所说的C/S了现在,我业务层的事务仍然是交给Spring来处理,对数据库的操作也仍然是交给B/S中的dao处理,不想重新写dao接口的其他实现了,但是我的session开关我就不知道在哪儿处理了,在B/S中是交给Spring的过滤器的,而在这种c/s中,session在哪儿开关了,并且我要确保是和业务层以及dao中同一个Session,简单点说,就相当于在一个应用程序中,使用Spring+Hibernate,session如何处理开关,并且确保业务层dao层,以及我开启的session是同一个session 希望各位大侠们提供具体代码,帮助帮助小弟,非常感谢(附:原本想看下OpenSessionInView中Session是如何处理的,以便参考,但是看不懂)

当OpenSessionInView 遇到Ajax

<p><span style="background-color: #888888;">OpenSessionInView</span> 把Hibernate的Session 带到了页面,解决了Hibernate 实体加载lazy问题。<br><br>我有一实际问题,标准使用是:<span style="background-color: #ffff00;">Jsp-&gt;Struts2 Action-&gt;JSP</span>,问题是现在页面使用AJAX验证,比如Jquery Validate Eng...,当所有验证都通过提交到Action,Action继续后台验证,最后Action不返回任何<span style="background-color: #ff00ff;">Result(return null)</span>,而返回Ajax验证需要的<span style="background-color: #ff00ff;">JSON</span>数据,利用JSP页面的AJAX验证框架跳转。<br><br>这样却无法实现OpenSessionInView.JSP得不到关联实体的属性。<br><br>流程是这样的:<br><span style="background-color: #ffff00;">JSP(1)-&gt;Action-&gt;JSP(1)-&gt;其他JSP (用户点击一次执行的操作),在 "其他JSP" 有使用lazy的实体对象属性。</span><br><br>是否是因为不再同一个request中了,而无法实现OpenSessionInView.</p> <p> </p>

Spring配置Open Session in View不起效

<p>尝试Spring配置Open Session in View, 但是还是报no session or session was closed,可能会是什么原因?配置Open Session in View有哪些注意事项?谢谢!</p> <p>web.xml配置片段</p> <p> </p> <p> </p> <pre name="code" class="xml">&lt;filter&gt; &lt;filter-name&gt;OpenSessionInViewFilter&lt;/filter-name&gt; &lt;filter-class&gt;org.springframework.orm.hibernate3.support.OpenSessionInViewFilter&lt;/filter-class&gt; &lt;init-param&gt; &lt;param-name&gt;sessionFactoryBeanName&lt;/param-name&gt; &lt;param-value&gt;hibernateSessionFactory&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;singleSession&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;OpenSessionInViewFilter&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; </pre> <p> Spring hibernate配置片段:</p> <p> </p> <pre name="code" class="xml">&lt;bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt; &lt;property name="configLocation" value="classpath:hibernate.cfg.xml" /&gt; &lt;/bean&gt; &lt;bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"&gt; &lt;property name="sessionFactory"&gt; &lt;ref local="hibernateSessionFactory" /&gt; &lt;/property&gt; &lt;/bean&gt; &lt;aop:config&gt; &lt;aop:advisor pointcut="execution(* *..PersonDAOHibImpl.*(..))" advice-ref="txAdvice" /&gt; &lt;/aop:config&gt; &lt;tx:advice id="txAdvice" transaction-manager="transactionManager"&gt; &lt;tx:attributes&gt; &lt;tx:method name="insert*" rollback-for="java.sql.SQLException" /&gt; &lt;tx:method name="update*" /&gt; &lt;tx:method name="*" read-only="true" /&gt; &lt;/tx:attributes&gt; &lt;/tx:advice&gt;</pre>   <p> </p>

Spring OpenSessionInView没有起作用

我的项目采用Spring OpenSessionInView的事务控制方式,但是没有起作用,高手帮忙看看,谢谢啦~~

Struts2和Hibernate框架整合开发,怎么扩大hibernate的session的生命周期

最近学了Struts2,想和之前学的Hibernate整合在一起,自己做一个项目联系。之前单独用Hibernate框架,为了解决Hibernate懒加载的问题,是使用了OpenSessionInView的方式,即定义一个过滤器,在过滤器中打开session,开启事务。并进行了try..catch..,当发生已成的时候,可以再过滤器进行捕获,然后事务回滚。 但是如今要加上Struts2,Struts2已经有自带的异常处理了,这样子action中出的异常就无法被OpenSessionInView这个filter捕获了,那么事务就无法回滚了。这样子可能导致业务逻辑出错。如果不使用OpenSessionInView,直接在dao中开启session,关闭session。又会出现懒加载的问题。求高手指点该怎么解决。这里没有使用Spring的事务管理。 我目前的想法是自己写一个struts2拦截器,在拦截器中开启事务,处理异常。捕获异常时进行回滚,然后再抛出,让Struts2的异常拦截器处理。有没有其他好的方法?

openSessionInView引出的奇怪问题

appfuse那套东西,Spring+Hibernate,在Controller层写下如下语句,[color=red]目的是根据视图层的修改内容更新 [code="java"] sellerSellItem[/color]: SellerSellItem sellerSellItem = ....(根据视图层生成) sellerSellItem.setSellerSellReport(sellerSellReport); sellerSellReport.addSellerSellItem(sellerSellItem); //sellerSellItemManager.save(sellerSellItem); [color=red]//1.[/color] sellerSellReportManager.save(sellerSellReport); [color=red]//2[/color] [/code] 注:sellerSellReport是主表,sellerSellItem是明细.使用了OpenSessionInView. 具体dao实现(service层从略): [code="java"] public T save(T object) { super.getHibernateTemplate().saveOrUpdate(object); [color=red]//3[/color] super.getHibernateTemplate().flush(); return object; } [/code] 问题来了: 1)如果屏蔽语句1,则sellerSellItem根本无法更新(不报错),但是可以新增; [code="java"] sellerSellItem[/color]: SellerSellItem sellerSellItem = ....(根据视图层生成) sellerSellItem.setSellerSellReport(sellerSellReport); sellerSellReport.addSellerSellItem(sellerSellItem); sellerSellReportManager.save(sellerSellReport); [color=red]//2[/color] service略 dao层: public T save(T object) { super.getHibernateTemplate().saveOrUpdate(object); [color=red]//3[/color] super.getHibernateTemplate().flush(); return object; } [/code] 2)如果屏蔽语句2,则sellerSellItem更新时报错:org.hibernate.NonUniqueObjectException,新增时成功. [code="java"] sellerSellItem[/color]: SellerSellItem sellerSellItem = ....(根据视图层生成) sellerSellItem.setSellerSellReport(sellerSellReport); sellerSellReport.addSellerSellItem(sellerSellItem); //sellerSellItemManager.save(sellerSellItem); [color=red]//1.[/color] service略 dao层: public T save(T object) { super.getHibernateTemplate().saveOrUpdate(object); [color=red]//3[/color] super.getHibernateTemplate().flush(); return object; } [/code] 3)将语句3改成merge,屏蔽语句2,靠,更新倒是无问题,新增时一下就直接新增两条同样的记录.(采用merge必须立即flush,否则在service层不能得到id,从而产生各种问题); [code="java"] sellerSellItem[/color]: SellerSellItem sellerSellItem = ....(根据视图层生成) sellerSellItem.setSellerSellReport(sellerSellReport); sellerSellReport.addSellerSellItem(sellerSellItem); sellerSellItemManager.save(sellerSellItem); [color=red]//1.[/color] service略 dao层: public T save(T object) { super.getHibernateTemplate().merge(object); [color=red]//3[/color] super.getHibernateTemplate().flush(); return object; } [/code] 4)将语句3改成merge,屏蔽语句1,更晕,这时实际上新增已正确了,sellerSellReport中已保存有正确的sellerSellItem,但真正的sellerSellItem却并不正确(没有id,处于游离状态),也就是sellerSellItem与sellerSellReport.sellerSellItem此时居然不同步! [code="java"] sellerSellItem[/color]: SellerSellItem sellerSellItem = ....(根据视图层生成) sellerSellItem.setSellerSellReport(sellerSellReport); sellerSellReport.addSellerSellItem(sellerSellItem); sellerSellReportManager.save(sellerSellReport); [color=red]//2[/color] service略 dao层: public T save(T object) { super.getHibernateTemplate().merge(object); [color=red]//3[/color] super.getHibernateTemplate().flush(); return object; } [/code] 5)不得已,先将sellerSellItem游离掉吧.结果发现用尽手段都不能游离掉,什么getHibernateTemplate().contains(obj)和getHibernateTemplate().evict(obj)根本不起作用似的. [code="java"] sellerSellItem[/color]: SellerSellItem sellerSellItem = ....(根据视图层生成) sellerSellItem.setSellerSellReport(sellerSellReport); sellerSellReport.addSellerSellItem(sellerSellItem); sellerSellReportManager.save(sellerSellReport); [color=red]//2[/color] service略 dao层: public T save(T object) { supre.getHibernateTemplate().evict(object); super.getHibernateTemplate().merge(object); [color=red]//3[/color] super.getHibernateTemplate().flush(); return object; } [/code] 请高人给出解决措施啊,呵呵. 看了源码,分析如下: 1)第一种方式,即利用主表更新子表的方式,由于采用了openSessionInView,在sellerSellReport中已存在id相同的sellerSellItem,所以sellerSellReport.addSellerSellItem(sellerSellItem)这句语句根本就相当于未执行.如果修改SellerSellItem的equals和hasCode方法,则sellerSellReport中会同时存在两个id相等的sellerSellItem,同样会报NonUniqueObjectException; 2)第二种方式,即直接更新子表的方式.由于session中已存在一个id相同的sellerSellItem,当然会报NonUniqueObjectException; 3)第三种方式,相当于更新子表,使用merge语句,经跟踪发现:在执行merge时和执行flush时会分别插入一条记录.进一步跟踪的结果:在执行merge时,是更新子表sellerSellItem,但主表sellerSellReport.sellerSellItem并未更新(不同步!);于是继续进行flush时,会更新主表,导致sellerSellItem重新被增加进去. 4)第四种方式,相当于更新主表,使用merge语句,发现更新后的主表的sellerSellReport.sellerSellItem有id,而sellerSellItem却没有id,居然有这种情况!也就是说merge语句慎用于一对多和多对多的情形. 5)evict不是不起作用,而是因为evict必须是对于get或load或find出来的真正的持久对象才能使其游离(开始以为Session的contains方法是利用持久化对象的equals和hashCode方法来的,结果发现不是这样,而是有个什么什么包装了一次,忘了). 唉,实在是想不到办法了,请各位帮忙,谢了先^_^

关于hinernate “no Session”的问题

最段自己在研究项目,发现一个很奇怪的现象,就是这个”could not initialize proxy - no Session“。 我已经在web.xml中加入了”openSessionInView“的过滤器,在JSP页面上是可以读取到关联对象的。可是在我登录时处理登录信息的时候报了这个错,真是无语了。 看看我的代码吧: 1、用户登录成功,发布登录事件 ![](http://img.bbs.csdn.net/upload/201703/20/1489978623_960991.png) 2、接收到登录事件,处理登录信息 ![](http://img.bbs.csdn.net/upload/201703/20/1489978635_569017.png) 3、处理授权信息,然后封装用户 ![](http://img.bbs.csdn.net/upload/201703/20/1489978649_156522.png) 4、封装用户时报错了 ![](http://img.bbs.csdn.net/upload/201703/20/1489978660_915851.png) 报错了: ![](http://img.bbs.csdn.net/upload/201703/20/1489978795_396478.png) 有谁遇到过这样的问题呢?

S2SH整合,hibernate5配置了hibernateOpenSessionInViewFilter还是出现nosession

用到多表查询的时候,会出现该错误,详细如下![图片说明](https://img-ask.csdn.net/upload/202002/27/1582799256_153583.png)![图片说明](https://img-ask.csdn.net/upload/202002/27/1582799263_128377.png)

ejb3.0怎样做到类似openSessionInView的作用吖!?

在ejb3.0的分布式应用里,怎样可以做到类似openSessionInView的作用吖?

Spring3.2+Hibernate4.1集成的时候提示找不到Session

<p>大家好, 我今天在整合spring3+hibernate的时候老是被提示找不到session  我获取session的方式是sessionFactory.getCurrentSession()</p> <p>控制台报的错误:</p> <pre name="code" class="控制台消息">严重: Servlet.service() for servlet springmvc threw exception org.hibernate.HibernateException: No Session found for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97) at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:978) at cn.ccsu.dao.impl.UserDaoImpl.getSession(UserDaoImpl.java:48) at cn.ccsu.dao.impl.UserDaoImpl.exist(UserDaoImpl.java:22) at cn.ccsu.manager.impl.UserManagerImpl.register(UserManagerImpl.java:20) at cn.ccsu.web.UserAction.register(UserAction.java:27) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) 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:746) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:822) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619) </pre> <p> applicationContext.xml文件</p> <pre name="code" class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd" default-autowire="byName"&gt; &lt;context:component-scan base-package="cn.ccsu" /&gt; &lt;bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; &lt;property name="locations"&gt; &lt;list&gt; &lt;value&gt;classpath:config/jdbc.properties&lt;/value&gt; &lt;/list&gt; &lt;/property&gt; &lt;/bean&gt; &lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&gt; &lt;property name="driverClass" value="${hibernate.connection.driver_class}" /&gt; &lt;property name="jdbcUrl" value="${hibernate.connection.url}" /&gt; &lt;property name="user" value="${hibernate.connection.username}" /&gt; &lt;property name="password" value="${hibernate.connection.password}" /&gt; &lt;/bean&gt; &lt;bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"&gt; &lt;property name="dataSource" ref="dataSource"&gt;&lt;/property&gt; &lt;property name="hibernateProperties"&gt; &lt;props&gt; &lt;prop key="hibernate.dialect"&gt; org.hibernate.dialect.MySQLDialect &lt;/prop&gt; &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt; &lt;prop key="hibernate.format_sql"&gt;true&lt;/prop&gt; &lt;prop key="hibernate.current_session_context_class"&gt;org.springframework.orm.hibernate4.SpringSessionContext&lt;/prop&gt; &lt;/props&gt; &lt;/property&gt; &lt;property name="packagesToScan"&gt; &lt;value&gt;cn.ccsu.model&lt;/value&gt; &lt;/property&gt; &lt;/bean&gt; &lt;bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"&gt; &lt;property name="sessionFactory"&gt; &lt;ref bean="sessionFactory" /&gt; &lt;/property&gt; &lt;/bean&gt; &lt;tx:annotation-driven transaction-manager="transactionManager"/&gt; &lt;/beans&gt;</pre> <p> web.xml文件</p> <pre name="code" class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"&gt; &lt;display-name&gt;S3SH&lt;/display-name&gt; &lt;listener&gt; &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt; classpath:config/applicationContext.xml &lt;/param-value&gt; &lt;/context-param&gt; &lt;filter&gt; &lt;filter-name&gt;OpenSessionInViewFilter&lt;/filter-name&gt; &lt;filter-class&gt; org.springframework.orm.hibernate4.support.OpenSessionInViewFilter &lt;/filter-class&gt; &lt;!-- 指定在spring配置的sessionFactory --&gt; &lt;init-param&gt; &lt;param-name&gt;sessionFactoryBeanName&lt;/param-name&gt; &lt;param-value&gt;mysqlSessionFactory&lt;/param-value&gt; &lt;/init-param&gt; &lt;!-- singleSession默认为true,若设为false则等于没用OpenSessionInView --&gt; &lt;init-param&gt; &lt;param-name&gt;singleSession&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;/filter&gt; &lt;!-- 处理中文乱码问题 start --&gt; &lt;filter&gt; &lt;filter-name&gt;UTF-Encoding&lt;/filter-name&gt; &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt; &lt;init-param&gt; &lt;param-name&gt;encoding&lt;/param-name&gt; &lt;param-value&gt;UTF-8&lt;/param-value&gt; &lt;/init-param&gt; &lt;init-param&gt; &lt;param-name&gt;forceEncoding&lt;/param-name&gt; &lt;param-value&gt;true&lt;/param-value&gt; &lt;/init-param&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;UTF-Encoding&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;!-- 处理中文乱码问题 end --&gt; &lt;!-- springmvc start --&gt; &lt;servlet&gt; &lt;servlet-name&gt;springmvc&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt; &lt;init-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt;classpath:config/springmvc-servlet.xml&lt;/param-value&gt; &lt;/init-param&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;springmvc&lt;/servlet-name&gt; &lt;url-pattern&gt;*.do&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;!-- springmvc end --&gt; &lt;/web-app&gt;</pre> <p> UserManagerImpl.java</p> <pre name="code" class="java">package cn.ccsu.dao.impl; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; import cn.ccsu.dao.UserDao; import cn.ccsu.model.UserBean; @SuppressWarnings("unchecked") @Component("userDao") public class UserDaoImpl implements UserDao { @Override public boolean exist(UserBean userBean) { String hql = "from UserBean userBean where userBean.username=:key"; Query q = getSession().createQuery(hql); q.setParameter("key", userBean.getUsername()); if (q.list().size() &gt; 0) { return true; } return false; } @Override public UserBean addUser(UserBean userBean) { getSession().save(userBean); return userBean; } @Override public List&lt;UserBean&gt; getAllUserList() { return getSession().createQuery("from UserBean").list(); } @Autowired @Qualifier("sessionFactory") private SessionFactory sessionFactory; public Session getSession() { return sessionFactory.getCurrentSession(); } } </pre> <p> 以上就是这个项目的主要代码了 请各位大神帮我瞧瞧  多谢</p>

为什么我用hibernate创建的对象不被垃圾回收(即使会话过期也不消失)

为什么Hibernate创建的对象不被销毁呢? 如图(1)先用hibernate查询,创建了36(TMain.java)个对象 然后再用jdbc查询如图(2)创建了37(TMain2.java)个对象 系统设置会话过期时间为2分钟 会话过期后如图(3)jdbc创建的对象消失了36个,而hibrenate创建的对象一个也没有消失,并且可以看到CGLIB代理对象也没有消失 这是为什么?小弟不才,没有仔细读过hibernate源代码,对其中原因不明。希望各位帮助解惑,版主请别删贴。 [img]http://yourgame.iteye.com/upload/picture/pic/17123/074d52d8-3774-394b-8a7b-ce26f889dfee.jpg[/img] 图(1) [img]http://yourgame.iteye.com/upload/picture/pic/17121/5c4baf23-28b2-3216-82fc-35f9a23f37ad.jpg[/img] 图(2) [img]http://yourgame.iteye.com/upload/picture/pic/17119/c15ade7d-a0c3-3c25-8afa-962b5eab0c64.jpg[/img] 图(3) WEB.xml [code="xml"]<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>service</servlet-name> <servlet-class>org.test.Service</servlet-class> </servlet> <servlet-mapping> <servlet-name>service</servlet-name> <url-pattern>/servlet/service</url-pattern> </servlet-mapping> <session-config> <!-- 这里为了测试,设置session国企时间为2分钟 --> <session-timeout>2</session-timeout> </session-config> </web-app> [/code] Hibernate.cfg.xml (hibernate 配置文件) [code="xml"] <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.username">sa</property> <property name="connection.url">jdbc:jtds:sqlserver://127.0.0.1:1433/fast</property> <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="myeclipse.connection.profile">jtds</property> <property name="connection.password">yourgame</property> <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property> <property name="show_sql">true</property> <mapping resource="org/test/TMain.hbm.xml" /> </session-factory> </hibernate-configuration> [/code] Service.java [code="java"] package org.test; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.hibernate.Session; @SuppressWarnings("serial") public class Service extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String method = request.getParameter("method"); List list = null; if (method.equals("hibernate")) { // 判断查询的方式 list = this.hibernate(request, response); } if (method.equals("jdbc")) { list = this.jdbc(request, response); } request.setAttribute("list", list); //将查询的结果集放入request中 request.getRequestDispatcher("/index.jsp").forward(request, response); } /** * 2008-7-1-上午11:05:41 * * 功能:通过Hibernate来查询对象返回集合 * */ private List hibernate(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Session session = HibernateUtils.getSession(); session.beginTransaction(); List list = session.createQuery("from TMain").list(); session.getTransaction().commit(); HibernateUtils.closeSession(session); return list; } /** * 2008-7-1-上午11:06:20 * * 功能:通过jdbc查询对象返回集合,Utils.list()方法将结果集封装成javabean * */ private List jdbc(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { return Utils.list(new TMain2(), "t_main", null, new Conn()); } } [/code] TMain.java (这个javabean用户Hibernate映射) [code="java"]package org.test; public class TMain implements java.io.Serializable { private Integer id; private String uuid; 其他字段和setter,getter() 略……… TMain2.java(和TMain.java 一样,这个javabean用于jdbc结果集封装) [/code] [b]问题补充:[/b] package com.bjsxt.hibernate; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtils { private static SessionFactory factory; private HibernateUtils() { } static { Configuration cfg = new Configuration().configure(); factory = cfg.buildSessionFactory(); } public static SessionFactory getSessionFactory() { return factory; } public static Session getSession() { return factory.openSession(); } public static void closeSession(Session session) { if (session != null) { if (session.isOpen()) { session.close(); } } } } [b]问题补充:[/b] 请问wangxin0072000 您指的是不是spring的OpenSessionInView ??? [b]问题补充:[/b] 请问wangxin0072000: OpenSessionInView 的作用就是把hiernate的Session保持到页面或者说保持到请求完成后再关闭吗? [b]问题补充:[/b] 请问请问wangxin0072000: 我按照您说的调用System.gc(); 效果可以,但是还有一些对象没有消失,org.test.TMain$$BulkBeanByCGLIB$$6d008257 org.test.TMain$$FastClassByCGLIB$$2519251b org.test.Service org.test.TMain 以上类的实例都还存在一个实例不被回收,请问这是什么原因呢? [b]问题补充:[/b] 请问wangxin0072000 按照您说的调用System.gc()方法很凑效,对象大部分都消失了 但是还有四个实例不被回收 分别是 org.test.TMain (1个) org.test.Service (1个) org.test.TMain$$FastClassByCGLIB$$2519251b (1个) org.test.TMain$$BulkBeanByCGLIB$$6d008257 (1个) 无论我调用多少次System.gc() 这些对象也不会被回收 请您帮助

关于hibernate的一个问题

使用hibernate一段时间,用着很爽,但最近碰到性能问题,不知道有没有什么解决方案。 1.如果有两张表Company和Employee,两者有关联这个不需要解释。 2.那么要想使用employee.getCompany()我已知有两种方式: (1)配置lazy=false,但这样的话如果我只想要employee而不需要company的时候hibernate 也会把conpany查出来放到employee里面,万一employee有很多父表,那查一次 employee就是灾难性的。不过至少session查完就关闭了。 (2) 配置lazy=true,这种方式可以解决上面的问题,但前提是需要配置openSessionInView, 而这种方式也会有瓶颈,比如某些请求会因为网络阻塞等原因session一直开着,这样也会 耗尽连接池。 3.那么问题来了,有没有什么配置方式可以让hibernate在不使用openSessionInView情况下将两者优点结合在一起,即:在查询employee的时候不查询company,查完后关闭session,当我调用employee.getCompany()会再次打开session进行查询,查完后关闭session。我知道在业务逻辑里可以自己写,但这样开发效率不高。我就是想知道有没有什么方法配置一下就可以实现。谢谢!

Hibernate延迟加载的困惑

比如商品实体类和商品类别实体类 使用商品实体类在需要时加载商品类别 以至于很Session没有及时关闭而造成Data source rejected establishment of connection,&nbsp; message from server: "Too many connections" 不知道我对以上问题有没理解错 求分享经验 <br />ps.将商品实体类绑定到了JSP用到bean:write标签读取商品类别信息时才去数据库里查询信息么 <br />困惑ing<img src="/images/smiles/icon_mad.gif"/> <br/><strong>问题补充</strong><br/><div class="quote_title">grandboy 写道</div><div class="quote_div"> <br />没有及时关闭,还是根本就没有关闭啊? 这可是完全不同的两个问题。如果根本没有关闭可以用OpenSessionInView来解决,如果已经正确配置了OpenSessionInView的话,可能只能在优化代码,增加连接数这些方面着手了。</div> <br />还是根本就没有关闭 <br />因为它的用一个类封装了一些Hibernate的方法 session.get(实体类名,实体类ID)这个方法就被封装了里面 调用一次该方法就session.close 当我延迟加载到商品类的类别就会有一场session已关闭 我没办法直接注掉了 <br />后延迟加载多了就出现上面提到的连接太多 话说回来我要怎么关闭session

关于service 层的设计和hibernate中实体的在页面中的传递

这几天在研究些项目,我看的是Struts2 的权威指南的最后一个项目。有几点疑问,有点搞不清楚,请教下大家 :D 1、关于service层的设计,有没必要把service 层设计成接口,然后再具体实现。 比如:UserService 有没必要设计成接口,然后再用 UserServiceImp 把它具体实现,书上是这么设计的,我感觉好像没什么必要,直接用UserService 实现具体的业务操作就行了,实现接口有点多余。。 这有的设计service层的设计原则,一般项目中的service层是怎么设计的呢,一个种类的相关操作对应一个service类?? 比如:对User的相关操作对应一个UserService类 2、关于hibernate中实体的在页面中的传输。 具体很难说清楚,还是举个例子说明下清楚点,比如: Class User{ private String id; private String name; private Address address; } Class Address{ private String name; private String code; } 在hibernate 查询中,如果设置了lazy 的话,当加载User类的时候,Address是不是立即执行查询的。。问题的关键在于,如果我把一个User类的List传输到页面,然后逐个输出User,包括要取出Address里的内容,然而hibernate 的session 已经关闭了,是不能取出Address的,会报错,这时可以采取OpenSessionInView 机制,这样就可以顺利取出的。或者把lazy 设成false,这样也可以取出来了。 还有个办法,我是在书上项目中的书看到的,就是在hibernate session没关闭之前,把Address取出来,新建个UserBean类 Class UserBean{ //把User 的属性都封装进来 private String username; private String userId; //把Address 的属性都封装进来 priavte String addressName; private String code; } 然后把UserBean 的List 传输到 页面,这样就不会在页面上用到hibernate 的session了。。 开始看到UserBean类的时候有点糊涂了,后来知道了他的作用后,觉得这样做好像有点麻烦,项目中又会多了一个UserBean类,但对于解决页面的实体的传输问题确实是个解决的办法。。 对于这种做法,在项目中常不常见呢,到底真正项目中,是怎么来解决这个问题的。OpenSessionInView??还是用UserBean这个方法??或者其他??? [b]问题补充:[/b] 稍微补充下,除了用到 OpenSessionInView或UserBean的方式,还有没其他方式呢。。 或许更合理些的,这两种方法我觉得都有点缺点。。

hibernate 延迟加载 数据调用

我在做一个小的项目,锻炼一下自己。请问一下我用的是struts+hibernate,其中有的team(班级)和Student多对一的关系,team对班级设置的是延迟加载,当我在页面中调用team.getStudents()的时候提示session was closed,但是我用不想把student设置为立即加载,有什么办法能使调用team.getStudents()方法时打开session? [b]问题补充:[/b] 谢谢以上两位的回答,我现在还想问一下,我想让原来的项目保持struts+hibernate保持不变想要实现对students的延迟调用是使用OpenSessionInView 好呢还是自己做一个filter好呢,那个更方便,具体的做法是怎样的?这是我帮别人做得网站,很急,希望高手们能帮一下,谢了! [b]问题补充:[/b] 如果使用OpenSessionInView 该引入哪些jar包?我感觉这个问题是hibernate很大的一个缺陷啊,为什么hibernate自己不做一个jar包解决呢,而使用spring的,这样很麻烦那

关于hibernate的疑问(不好意思,前两个问题格式有点错误,我改正了下)

public void update(T t) { Session sess = sessionFactory.getCurrentSession(); sess.update(t); } 这个是我用spring+hibernate反向工程生成的一个DAO的函数,可以看到用了seesion,但是我不理解的是,为什么session在update后没有commit(),和close(),难道Hibernate希望我们在service层进行commit()和close()吗? ——————————————————————————————————— public void updateProductCount(int userId, int productModelId, int count) { // TODO Auto-generated method stub User user = userDao.findByProperty("userId", userId);[/color] Cart cart = cartDao.findByProperty(CartDao.USER_ID, userId);[/color] String[] a1 = {CartDao.CART_ID, ProductModelDao.productModelId}; Integer[] a2 = {cart.getCartId(),productModelId}; CartItem cartItem = cartItemDao.findListByProperties(a1,a2).get(0);[/color] cartItem.setCount(count); cartItemDao.update(cartItem); } 是3次查询,从代码来看是进行了3次getCurrentSession(),假设每一次的查询后seesion被自动关闭,这也就意味着seesion被反复打开关闭了3次吗? 如果我给这个函数加上一个事务@Transactional,那么是不是意味这一个事务跨了3连接,但是JDBC为底层的HIbernate不是不允许跨连接调用的吗? 我有打算过看源码,但是找不到。。。所以向大家求救 ——————————————————————————————————— 关于事务的属性是不是一般加给service层,因为DAO层都是最基本的操作了(增删查改),事务不是不是就是把一堆基本操作打包好的意思 ——————————————————————————————————— public void updateProductCount(int userId, int productModelId, int count) { // TODO Auto-generated method stub User user = userDao.findByProperty("userId", userId);[/color] Cart cart = cartDao.findByProperty(CartDao.USER_ID, userId);[/color] String[] a1 = {CartDao.CART_ID, ProductModelDao.productModelId}; Integer[] a2 = {cart.getCartId(),productModelId}; CartItem cartItem = cartItemDao.findListByProperties(a1,a2).get(0);[/color] cartItem.setCount(count); cartItemDao.update(cartItem); } 就这个函数而言,我如果加了那个openSessionInView的过滤器,是不是指在这个函数从开始调用到完成,session会一直保持打开状态,也就不会出现因为延迟加载访问不到对象的集合属性了啊?这样比seesion反复打开关闭的性能提升大不大啊

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

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

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

springboot+jwt实现token登陆权限认证

一 前言 此篇文章的内容也是学习不久,终于到周末有时间码一篇文章分享知识追寻者的粉丝们,学完本篇文章,读者将对token类的登陆认证流程有个全面的了解,可以动态搭建自己的登陆认证过程;对小项目而已是个轻量级的认证机制,符合开发需求;更多精彩原创内容关注公主号知识追寻者,读者的肯定,就是对作者的创作的最大支持; 二 jwt实现登陆认证流程 用户使用账号和面发出post请求 服务器接受到请求后使用私...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

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

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

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

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

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

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

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

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

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

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

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

外包程序员的幸福生活

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

优雅的替换if-else语句

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

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

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

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

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

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

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

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

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

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

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

面试:第十六章:Java中级开发

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

早上躺尸,晚上干活:硅谷科技公司这么流行迟到?

硅谷科技公司上班时间OPEN早已不是什么新鲜事,早九晚五是常态,但有很多企业由于不打卡,员工们10点、11点才“姗姗来迟”的情况也屡见不鲜。 这种灵活的考勤制度为人羡慕,甚至近年来,国内某些互联网企业也纷纷效仿。不过,硅谷普遍弹性的上班制度是怎么由来的呢?这种“流行性迟到”真的有那么轻松、悠哉吗? 《动态规划专题班》 课程试听内容: 动态规划的解题要领 动态规划三大类 求最值/计数/可行性 常...

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

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

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

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

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

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

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

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

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

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大胆预测下未来5年的Web开发

在2019年的ReactiveConf 上,《Elm in Action》的作者Richard Feldman对未来5年Web开发的发展做了预测,很有意思,分享给大家。如果你有机会从头...

立即提问
相关内容推荐