controller返回ModelAndView,ModelAndView中的视图名称也要通过配置一个ViewResovler的Bean对象来进行解析。
请说明你为什么不直接实现controller接口,而是继承AbstractController类的理由?这里面涉及了一个什么设计模式?
MultiActionController有什么作用?在什么情况下使用?DisplaySortByXxx。
什么情况下用BaseCommandController?当要请求参数自动包装成一个Command对象时。
下午带着学员们去听了csdn与sun公司组织的技术讲座,下面是陈喆整理的笔记。
1.SSO(Single Sign-on单点登录)
单点登录功能使得用户只要登录了其中一个系统,就可以访问其他相关系统,而不用进行身份验证登录。目前开源社区已经有OpenSSO框架,源代码可以通过访问http://openSSO.dev.java.net获得。它提供安全身份管理的SSO功能。未来SUN的身份管理产品将基于OpenSSO。
2.JAVAEE开发中的性能调优
这里主要从三方面进行讨论:如何迅速定位、如何解决问题、调整步骤和过程。在具体定位方面,我们首先可以目测,以我们的知识经验来判断问题大致出现的范围。另外,我们可以用一些检测工具帮助我们检查WEB应用程序。例如IE插件HTTPWatch,它可以帮助WEB开发者检测:每个请求的响应时间、显示请求和响应消息、cookie等。
一般大公司都有自己一套完善的日志记录系统,例如通过servlet Filter技术,处理时间大于多少秒的请求都记录下来。对于普通用户,也应该尽力完善自己所开发系统的日志记录功能。在产品开发测试阶段,我们通过压力测试各个模块,因此能了解到各个模块的性能情况,这样,在产品运营时,我们可以利用日志记录的各个性能情况对比压力测试的情况,很快的定位出出问题的模块来,甚至是具体的代码段。
不少大公司里的千万级别用户访问的系统,经过分析后,往往发现SQL优化对整个系统的性能改善大有帮助。SQL调优主要关注点在如何避免FTS(全表扫描)。各个数据库提供商以及第三方厂商往往提供特定的数据库执行计划分析工具,以便DBA或程序员了解如何更好的优化。以下列举了几点常用的避免FTS的优化策略:
*“null”VS null。数据库在查找目标记录时,如果某字段的记录里有null值(这里的null值指没有确定的空白值),会造成该字段的索引失去作用,一般的调优策略时,对于null的记录,采用“null”填充其值。这样,数据库会当它是有确定记录,而启用索引。
*“>”or”<” VS “<>”。 “<>” 会破坏索引, 导致FTS, 应该使用“>”or”<”。
*where子句的条件顺序也会影响的性能差别可以达到10至20倍的时间差距。
以上是对于SQL优化的一些小总结。在用普通的策略不能搞定问题时,往往可以换个角度,采取非同寻常的策略。比如:
*运行库与历史库分开。虽然在数据库表结构设计上认为会造成数据冗余,但数据访问量大时,运行库与历史库分开的确能造成性能的改善。
*启动多个实例。一个服务器实例如果能支持500个线程访问,对于有多核的服务器来说,启用多个实例,让不同的CPU处理不同实例,这相当于群集服务器功能。3个实例就能支持1500个线程访问。
*不要频繁的使用“昂贵”方式:如EJB,由于要实现本地和远程接口,消耗的资源大;而System.out.println(); 由于要把信息打印在控制台,其实也是相对消耗性能。对于数据库资源访问,连接池机制应该提倡使用。
*HashTable与HashMap。HashTable由于实现了线程安全,比较消耗资源,对于基本没有并发访问的情况,应该使用HashMap代替。
*数据传递中的压缩。尽管网络带宽越来越大,但对于大量的数据传送,还是要在发送端先压缩再传,在接受端,先解压文件,再试用。
最后,列出了调优的步骤:分析症状——>重现症状——>性能调优——>测试——>测试成功的代码归并到产品中(失败的测试,迭代从性能调优阶段开始)
学员们听完讲座后,更有信心了,这些东西我们几乎都讲过,有学员说这次讲座也就是复习了一下我们以前讲解的知识。现在学生们听的知识很多了,眼界也很开阔了,但动手能力并不强,所以,后阶段都是以学员们动手练习为主,讲课为辅了。
分享到:
相关推荐
本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
【标题】"maven与spring MVC"涉及到的是Java Web开发中的两个关键组件——Maven和Spring MVC,它们在构建和管理复杂项目时起着至关重要的作用。Maven是一个项目管理和综合工具,它通过提供一个标准化的构建过程和...
另外,Spring MVC与Spring框架的其他组件无缝集成,如Spring AOP(面向切面编程)用于实现日志、事务管理等功能,Spring JDBC和MyBatis等持久层框架用于数据库操作,以及Spring Data JPA、Hibernate等ORM工具,使得...
Spring MVC培训Spring MVC培训Spring MVC培训Spring MVC培训
Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够有效地分离业务逻辑、数据处理和用户界面。在"Spring MVC 4.2.3"版本中,我们看到了一系列的...
此外,Spring MVC还能够与其他Spring模块(如Spring Security、Spring WebSocket等)无缝集成,提供完整的解决方案。 总之,“Spring MVC - A Tutorial”这份指南会详细讲解Spring MVC的各个核心组件和使用技巧,...
Spring MVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,使用了IoC容器,支持RESTful风格的应用程序开发。Spring MVC通过分离模型(Model)、视图(View)和控制器(Controller)来简化Web开发...
Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在Spring MVC 4.0版本中,它引入了许多改进和新特性,以提升开发效率和应用程序的性能。 1. **依赖注入**:Spring ...
Spring MVC是Spring框架的一个核心模块,专用于构建Web应用程序。这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式...
11. **Tiles or Layouts**: 为了实现页面布局,Spring MVC可以与其他框架集成,如Tiles,允许创建可重用的页面片段。 12. **RESTful**: Spring MVC支持RESTful Web服务,通过HTTP动词(GET、POST、PUT、DELETE等)...
在本压缩包中包含了一系列与Spring MVC相关的jar文件,这些文件是构建和运行Spring MVC项目所必需的依赖。 首先,`hibernate3.jar` 是Hibernate ORM框架的库,它允许开发者将Java对象映射到关系数据库,提供了数据...
这是一个基于Spring MVC、Mybatis和Spring框架实现的个人博客系统,涵盖了Web开发中的后端架构设计、数据库管理和前端展示等多个方面。以下将详细介绍这个系统的关键知识点: **1. Spring MVC** Spring MVC是Spring...
这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring...
Spring MVC易于与Spring的其他模块(如Spring Data JPA、Spring Security等)集成,也支持与第三方库(如Hibernate、MyBatis等)配合使用,实现强大的Web应用功能。 这个"spring MVC简单示例"是为了帮助初学者理解...
4. **Servlet 相关库**:Spring MVC 需要与 Servlet 容器进行交互,因此需要 `servlet-api.jar` 和 `jsp-api.jar`。这两个 jar 包通常由服务器提供,但在开发环境中可能需要手动添加。 5. **JSTL(JavaServer Pages...
总的来说,"Mastering Spring MVC 4(2015.09)源码"提供了深入学习Spring MVC的机会,你可以通过阅读和分析源码来了解如何配置DispatcherServlet、怎样编写控制器、如何进行数据绑定与验证,以及如何利用拦截器等特性...