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是一个整数.实际数字不足的 ...
随机推荐
- 从github下载项目出现yes/no的选项,无法下载项目
解决办法: # 本地执行: ssh-keygen # 将id_rsa_pub文件中公钥拷贝到github上的ssh认证 oodful@:~/Volumes/Term2 :::$cat ~/.ssh/i ...
- [JZOJ5969] 世界线修理(欧拉回路)
题目 描述 > 题目大意 给你两棵树,让你对每个点赋权,使得在两棵树中的任意子树的和绝对值为111. 比赛思路 其实我一开始理解错题意了-- 正解 首先,我们可以判断每个点权的奇偶性. 如果一个 ...
- Django中间件分析
SessionMiddleware 浏览器会发送包含SESSION_COOKIE_NAME的的Cookie 中间件从django_session中按照SESSION_COOKIE_NAME取出存入的s ...
- linux 获取外网ip地址
curl ifconfig.me 私有ip地址,获取公网ip
- mysql知识点回顾与梳理
一.sql语句执行顺序 from join on where group by avg,sum,count等各种函数 having select distinct order by(asc(升序),d ...
- C# 统一对 try...catch 的调用,方便保存错误日志
每个优秀的开发人员,应该尽可能保证程序稳定运行,在确实不需要使用try...catch的地方尽尽量不要使用以提高程序性能. 但是我们不可能保证每段代码不会出错,由于出错引起的用户界面并不友好,而且有可 ...
- JasperReports报表组15
组在JasperReports的协助组织对报告的数据以逻辑方式.报告组代表连续记录的数据源中有一些共同点,比如某个报表字段的值的序列.报告组由<group>元素定义.一个报表可以有任意数量 ...
- java导入导出excel
maven <!--POI--> <dependency> <groupId>org.apache.poi</groupId> <artifact ...
- 用javascript的classList代替jquery的class操作
javascript的className操作方法比较难受,他获取的是一个连续的字符串 必须要用split拆分开,好多人因此想去用jquery的addClass,removeClass,hasClass ...
- 关于 linux 的 limit 的设置
以下内容参考链接 1.file-max系统最大打开文件描述符数 永久性:在/etc/sysctl.conf中设置 2.nr_open是单个进程可分配的最大文件数. 内核支持的最大file handle ...