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是一个整数.实际数字不足的 ...
随机推荐
- Vue配置多个跨域目标链接
参考: https://segmentfault.com/a/1190000016199721 1.通过使用的http-proxy-middleware来实现跨域代理 devServer: { dis ...
- 2、设备树的规范(dts和dtb格式)
第01节_DTS格式(1) 语法:Devicetree node格式:[label:] node-name[@unit-address] { [properties definitions] ...
- UOJ261 【NOIP2016】天天爱跑步 LCA+动态开点线段树
UOJ261 [NOIP2016]天天爱跑步 Description 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.天天爱跑步是一个养成类游戏,需要玩家每天按时上线, ...
- 【codeforces 508D】Tanya and Password
[题目链接]:http://codeforces.com/problemset/problem/508/D [题意] 给你一个字符的所有连续3个的子串; 让你复原出原串; (包含小写.大写字母以及数字 ...
- Redis高可用及集群
目录 Redis主从复制 环境准备 主从复制命令 Redis Sentinel 功能 Redis Sentinel配置 Redis集群 Redis主从复制 使用异步复制 一个服务器可以有多个从服务器 ...
- 深入浅出 Java Concurrency (15): 锁机制 part 10 锁的一些其它问题[转]
主要谈谈锁的性能以及其它一些理论知识,内容主要的出处是<Java Concurrency in Practice>,结合自己的理解和实际应用对锁机制进行一个小小的总结. 首先需要强调的一点 ...
- 分享一个百度大牛的Python视频系列下载
好像是百度资深大数据工程师 在录制Python视频课程讲课,包括Python基础入门.数据分析.网络爬虫.大数据处理.机器学习.推荐系统等系列,他还在不停地录制,课程感觉很不错,视频网盘分享给大家 学 ...
- OSG能够在当前帧截图,也就是能转换视角后马上截图
#include <Windows.h> #include <osg/GraphicsContext> #include <osg/Group> #include ...
- 请问Pycharm如何实现变量的批量重命名?
1.点击你要改的单词,右键refactor ->rename 2. Ctrl + R 替换 Ctrl + Shift + F 全局查找 Ctrl + Shift + R 全局替换
- vue项目中实现扫码功能
项目地址:https://github.com/wkl007/vue-scan-demo.git 项目主要是做的一个扫码的功能 核心代码为 <div class="scan" ...