Spring4.x 基础知识点
# Spring4.x 基础知识点
## 第二章 快速入门
- 一般情况下,需要在业务模块包下进一步按分层模块划分子包,如user\dao、user\service、viewspace\dao、viewspace\service等。对于由若干独立子系统组成的大型应用,在业务分层包前还需要加上子系统的前缀。包的规划对于大型应用非常重要,它直接关系到应用部署和分发的便利性。
- 在配置文件的定义上,一般也是按模块进行划分,一定程度上降低争用。
- 在拼接SQL语句的句前和句后都加一个空格,这样避免分行SQL语句组合后的错误。
- 在编写SQL语句时,通常将SQL语句写在类静态变量中,这样使代码更具可读性。
```java
private final static String INSERT_LOGIN_LOG_SQL = "insert into t_login_log(user_id,ip,login_datetime) values(?,?,?)";
```
- 在使用SpringJDBC底层对于原先的JDBC进行了薄封装,使用者在使用专注SQL语句的组装,用考虑对于数据库获取连接、断开连接、异常处理等。Spring的配置中我们首先会声明``datasource``,之后会使用数据库连接模板进行引用。
- 对于在Service层我们会调用Dao层的不同方法,针对于不同的方法对于会涉及到回滚等复杂操作时我们应该使用注解``@Transactional``,Spring的事务管理器会拦截做事务处理。
- 对于数据库用户的密码存储方式:
- 一是将密码加密后以密文的方式进行保存。
- 二是仅保存密码的MD5的摘要。(即使后台泄露也无法反推账户密码)
- 此外Web应用都使用了图片验证码功能,可能有效增加攻击成本。
- 对于Spring4.x进行单元测试时,使用``@ContextConfigration("classpath*:/applicationContext.xml")``用于指定Spring的配置文件。
- 配置Dao层时,Spring配置引用bean、context、p。
```xml
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
```
- 配置Service层时,Spring配置tx、aop。
```xml
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
```
- Spring容器的配置
```xml
org.springframework.web.context.ContextLoaderListener
```
- 控制器根据登录结果分别返回```ModelAndView("login","error","用户名和密码错误")```和```ModelAndView("main")```。ModelAndView的第一个参数代表视图的逻辑,第二、第三参数分别为数据模型名称和数据模型对象,数据模型对象将以数据模型名称为参数名放置到request的属性中。
- 在SpringMVC中使用```InternalResourceViewResolver```通过为视图逻辑名添加前、后缀的方式进行解析。
- 运行Web应用有两种方式:
- 在IDE工具中配置Web应用服务器
- 在pom.xml文件中配置Web应用服务器插件
- Spring Boot实际上是一些类库的集合,它能够被任意项目的构建系统所使用,为了简便起见,Spring Boot提供了一个命令行客户端运行工具(Spring Boot CLI),可以用来有你想那个和测试Spring Boot应用。
- SpringBoot中的jdbcTemplate.queryForInt()方法过时,使用jdbcTemplate.queryForObject(String sql,Object[] args,Class<T> requiredType)。返回需要什么类型,第三个参数就写什么类型,比如int类型就写Integer.class。
Spring4.x 基础知识点的更多相关文章
- fastclick 源码注解及一些基础知识点
在移动端,网页上的点击穿透问题导致了非常糟糕的用户体验.那么该如何解决这个问题呢? 问题产生的原因 移动端浏览器的点击事件存在300ms的延迟执行,这个延迟是由于移动端需要通过在这个时间段用户是否两次 ...
- .NET基础知识点
.NET基础知识点 l .Net平台 .Net FrameWork框架 l .Net FrameWork框架提供了一个稳定的运行环境,:来保障我们.Net平台正常的运转 l 两种交 ...
- JavaScript 开发者经常忽略或误用的七个基础知识点(转)
JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...
- JavaScript 开发者经常忽略或误用的七个基础知识点
JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...
- JavaScript开发者常忽略或误用的七个基础知识点
JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...
- JavaScript语言基础知识点图示(转)
一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...
- JavaScript 语言基础知识点总结
网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )
- c语言学习之基础知识点介绍(三):scanf函数
本节继续介绍c语言的基础知识点. scanf函数:用来接收用户输入的数据. 语法:scanf("格式化控制符",地址列表); 取地址要用到取地址符:&(shift+7) 例 ...
- c语言学习之基础知识点介绍(二):格式化控制符和变量的补充
上节简单介绍了c语言中的一些基础知识点,本节将对之前介绍的不够详细的知识点进行补充. 格式化控制符的消息介绍: %d的其他控制符: 1.%md:m代表这个整数位占用多少位,m是一个整数.实际数字不足的 ...
随机推荐
- 8种nosql数据库对比
1. CouchDB 所用语言: Erlang 特点:DB一致性,易于使用 使用许可: Apache 协议: HTTP/REST 双向数据复制, 持续进行或临时处理, 处理时带冲突检查, 因此,采用的 ...
- 【核心核心】5.Spring【DI】注解方式
使用注解的方式依赖注入不用提供set方法 1.普通类型的注解 @Value @Value(value="春天") private String name; 2.对象类型的注解 @A ...
- QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: 设备上没有空间
解决办法: 添加最大监控文件数量 临时解决:(重启之后恢复) 命令设置:sudo sysctl fs.inotify.max_user_watches=524288 生效: sudo sysctl - ...
- linux命令统计文件中某个字符串出现的次数
1.使用grep linux grep命令在我的随笔linux分类里有过简单的介绍,这里就只简单的介绍下使用grep命令统计某个文件这某个字符串出现的次数,首先介绍grep命令的几个参数,详细参数请自 ...
- sort方法
作用:对列表进行排序 >>> spam=[2,5,3,14,1,-7] >>> spam.sort() >>> spam [-7, 1, 2, 3 ...
- 每日上亿请求量的电商系统,JVM年轻代垃圾回收参数如何优化? ----实战教会你如何配置
目录: 案例背景引入 特殊的电商大促场景 抗住大促的瞬时压力需要几台机器? 大促高峰期订单系统的内存使用模型估算 内存到底该如何分配? 新生代垃圾回收优化之一:Survivor空间够不够 新生代对象躲 ...
- java 遍历
LinkedList倒序遍历 public List<Integer> getNewsFeed(int userId) { List<Integer> res = new Ar ...
- Liferay 7:Liferay DXP全套教程内附源码
分享是美德 都是英文教程,有不明白的问题可以随时咨询我. http://www.javasavvy.com/liferay-7-hooks-tutorials/
- 数据库迁移工具DBMigration
- OpenLayers测量距离和面积
<!DOCTYPE html> <html> <head> <title>测量距离和面积</title> <meta http-equ ...