国外创意海报设计网站seo 网站标题长度
web/
2025/9/30 18:32:07/
文章来源:
国外创意海报设计网站,seo 网站标题长度,大数据营销平台有哪些,建设免费网站struts2 1-1#xff1a;为什么每次请求都要创建一个Action对象#xff1f; 是出于对线程安全的考虑#xff0c;每个request都不会相互影响 1-2#xff1a;ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题#xff1f; 先把旧的model对象从ValueStack… struts2 1-1为什么每次请求都要创建一个Action对象 是出于对线程安全的考虑每个request都不会相互影响 1-2ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题 先把旧的model对象从ValueStack中移除然后再把新的model对象压入ValueStack 官方解释 set to true if you want the model to be refreshed on the value stack after action execution and before result execution. The setting is useful if you want to change the model instance during the action execution phase, like when loading it from the data layer. This will result in getModel() being called at least twice. 一般不需要配顺便骂句谁出的这么坑爹的问题。 1-3为什么在web.xml中配置的StrutsPrepareAndExecuteFilter要过滤所有的请求 其实这里可以选择性的过滤但是一般大家都是/*,所有的请求都必须经过StrutsPrepareAndExecuteFilter这个请求转发器。 它会去找struts.xml文件一般放在src下面的第一层目录然后找到相应的资源去转发。 1-4请你给我谈谈ValueStack 所谓值栈就是在一个栈里面堆了一大坨的数值在action中可以这样获得ValueStack vs1 ActionContext.getContext().getValueStack(); 其实值栈就类似于一个map的容器里面存放的是键值对但是有个区别这个值栈的键都是String类型的。我们一般可以这样来拿出值栈里面的内容 名字属性获取 : 也可以用el表达式${aa}或者ognl表达式 其中ognl表达式主要就是去访问值栈它的查找路线为用于按request session application顺序访问其属性attribute#user.username相当于按顺序在以上三个范围scope内读取user.username属性直到找到为止 1-5Struts2是如何实现MVC设计模式的 自己去理解按自己的request走一遍就知道了。不懂MVC还用STRUTS? Spring 2-1你为什么要用Spring XXX为什么要用好用才用的啊。spring有很多作用比如他的安全机制事务管理,日志管理等等。。最主要的是把耦合度降到最低。2-2请你聊一聊IOC/DI 把工厂和对象生成这两者独立分隔开来提高灵活性和可维护性。具体的太多了。2-3什么是声明式的事务管理为什么要使用声明式的事务管理Spring如何实现声明式的事务管理 Spring 的声明式事务管理在底层是建立在 AOP 的基础之上的。其本质是对方法前后进行拦截然后在目标方法开始之前创建或者加入一个事务在执行完目标方法之后根据执行情况提交或者回滚事务。 使用声明式的事务管理可重用性高。这里就列举一种最常用的配置吧。 Xml代码 /spanbean iddataSource classorg.springframework.jdbc.datasource.DriverManagerDataSource /spanproperty namedriverClassName value${jdbc.driverClassName} / /spanproperty nameurl value${jdbc.url} / /spanproperty nameusername value${jdbc.username} / /spanproperty namepassword value${jdbc.password} / //spanbean /spanbean idtransactionManager classorg.springframework.orm.hibernate3.HibernateTransactionManager /spanproperty namesessionFactory /spanref localsessionFactory / //spanproperty //spanbean /spanbean idnativeJdbcExtractor lazy-inittrue classorg.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor / /spanbean idlobHandler lazy-inittrue classorg.springframework.jdbc.support.lob.OracleLobHandler /spanproperty namenativeJdbcExtractor /spanref beannativeJdbcExtractor / //spanproperty //spanbean /spanbean idsessionFactory classorg.springframework.orm.hibernate3.LocalSessionFactoryBean /spanproperty namedataSource refdataSource / /spanproperty namelobHandler reflobHandler / /spanproperty namemappingDirectoryLocations /spanlist /spanvalueclasspath*:XXX//spanvalue //spanlist //spanproperty /spanproperty namehibernateProperties /spanprops /spanprop keyhibernate.dialect${hibernate.dialect}//spanprop /spanprop keyhibernate.show_sql${hibernate.show_sql}//spanprop /spanprop keyhibernate.cache.provider_class${hibernate.cache.provider_class}//spanprop /spanprop keyhibernate.default_schema${hibernate.default_schema}//spanprop //spanprops //spanproperty //spanbean /spanbean idtxProxyTemplate abstracttrue classorg.springframework.transaction.interceptor.TransactionProxyFactoryBean /spanproperty nametransactionManager /spanref localtransactionManager//spanref //spanproperty /spanproperty nametransactionAttributes /spanprops /spanprop keysave*PROPAGATION_REQUIRED,-exception//spanprop /spanprop keyupdate*PROPAGATION_REQUIRED,-exception//spanprop /spanprop keydelete*PROPAGATION_REQUIRED,-exception//spanprop /spanprop key*PROPAGATION_REQUIRED,readOnly//spanprop //spanprops //spanproperty //spanbean 2-4把spring和hibernate集成定义事务管理特性的时候为何要将除了添加、删除、更新操作之外的方法即主要执行 查询任务的方法定义为read-only 应用这项属性时底层的数据库可以对读取进行最优化但要配合PROPAGATION_REQUIREDPROPAGATION_REQUIRES_NEW或PROPAGATION_NESTED使用即只能在事物中使用。简单的说就是增快查询速度。 Hibernate 3-1请你谈谈你对OR映射的理解 对象关系映射把关系数据库的数据结构与你的对象关联起来以操作对象操纵关系数据库。3-2很多人说Hibernate不适合大项目性能有问题你是如何理解的 好不好是看你怎么用不一定用了hibernate就不使用sql了一些复杂的 比如说统计需要的数据一般都是直接用sql去执行的。使用hibernate最重要的一点是 看你如何去使用懒加载在适当的时候使用懒加载会提高你的性能。3-3Hibernate为什么一定要定义一个数据库标识 因为要对应数据库表的主键唯一性原则。3-4为什么Hibernate建议你的实体类实现hashCode和equals方法 多对多双向关系如果hashCode和equals正常写之将出现load不上的问题。 经常使用set集合来保存相关对象而set集合是不允许重复的。而hibernate正是去比较两个对象是否是同一个所以它会去比较hashCode和用equals来比较。3-5谈谈你对Hibernate实体类中的数据库标识与数据库主键之间关系的认识 是对象与关系数据库中的表识别的唯一标识。3-6谈谈你对Hibernate关联映射与数据库外键之间关系的认识 关系映射中一个外键就相当于一个对象的实例这样就形成了1-1 1-NN-1N-N这种关系。3-7调用session.save()方法hibernate一定会发出insert语句吗谈谈你的理解 save, 把一个瞬态的实例持久化标识符及时的产生,它要返回标识符在save之前hibernate会去根据主键查一次看能否保存。3-8调用session.update()方法hibernate一定会发出update语句吗谈谈你的理解 update是把一个脱管状态的对象或自由态对象一定要和一个记录对应更新到数据库。在update之前hibernate会去根据主键查一次看能否可以更新。3-9请你聊一下以下名词、概念或用法lazy、lazy”extra”、inverse、fetch、fetch”join”、fetch”subselect”、batch-size lazy概念只有真正使用该对象内普通属性时才会创建对于hibernate而言正真使用的时候才会发出sqlload支持lazy懒加载get不支持懒加载。 extra:一种比较聪明的懒加载策略即调用集合的size/contains等方法的时候hibernate lazy”extra”时并不会去加载整个集合的数据而是发出一条聪明的SQL语句以便获得需要的值只有在真正需要用到这些集合元素对象数据的时候才去发出查询语句加载所有对象的数据。 inverse – 标记由哪一方来维护关联关系双向关联中会用到inverse默认值为false。如果inverse设置为true表示将由对方维护两者之间的关联关系。 fetch是抓取策略 fetch select是在查询的时候先查询出一端的实体然后在根据一端的查询出多端的实体会产生1n条sql语句; fetch join是在查询的时候使用外连接进行查询不会差生1n的现象 fetch”subselect”发送一条select语句抓取在前面查询到的所有实体对象的关联集合 batch-size 是来设置批量更新的HQL/SQL数量 如果达到此数量会提交给数据库 但是生成的HQL/SQL语句一个也不会少3-10配置了lazy”true”一定会实现懒加载吗 get()是不能实现懒加载的。必须使用load()。fetch要使用select 3-11请你谈谈Hibernate中的“N1”问题 一对多是查询一次会带出N次查询。就是一些主外键关系的对象。当进行一个表的查询时当这个表与另外的表是多对一或者是一对多关联时就会出现N1问题当查询一条语句时比如主键name1,而与这个 name相关联的另一张表对应name的有N个记录这时就出另外发出N条语句去查询而我又不要那些记录这时就是N1问题。 转载于:https://www.cnblogs.com/zch-lxh1314/p/7055239.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84589.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!