# 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。

最新文章

  1. HDU-4869 Turn the pokers
  2. HTML5 重要标签以及属性学习
  3. odeforces Beta Round #77 (Div. 2 Only)
  4. 智能生活 科技无限 CTO VOICE 第二期 智能硬件创新创业专场演讲嘉宾招募
  5. Oracle的参数文件
  6. 爆破unabexcm5fl(已补上注册机)
  7. c# 在windows服务中 使用定时器
  8. bzoj 1022: [SHOI2008]小约翰的游戏John anti_nim游戏
  9. 初窥Linux 之 数据流重定向
  10. SimpleDateFormat的线程安全问题与解决方案
  11. ubuntu 的挂起与休眠
  12. 杭电ACM2009--求数列的和
  13. cpp 区块链模拟示例(二)工程代码解析
  14. Windows消息循环
  15. Python+Matplotlib制作动画
  16. ubuntu 手动安装mysql
  17. Android自定义组件——四个方向滑动的菜单实现
  18. UVa 1354 天平难题
  19. memcmp 和 memcpy使用
  20. SQL分页数据重复问题

热门文章

  1. 在ALV点击Key值调用TCode,跳过初始屏幕
  2. elasticsearch filters特性
  3. elasticsearch river 参数文档
  4. springboot整合rabbitMQ时遇到的消息无法入列问题
  5. double转integer
  6. 【转】 解释下浏览器是如何判断元素是否匹配某个 CSS 选择器?
  7. webpack 4.0尝鲜
  8. line-height:2和line-height:2em的区别,它们是有区别的
  9. spring-注解配置-junit整合测试-aop
  10. 2018-8-10-WPF-使用不安全代码快速从数组转-WriteableBitmap