spring boot开发与传统spring开发web项目便利性的比较

登录示例

典型的基于Spring的Web应用

类包规划

-schema

-src

----main

--------java

------------com.smart

----------------dao(持久层,负责数据的访问和操作,DAO类被上层的业务类调用)

----------------------LoginLogDao.java(负责记录用户的登录日志,Spring JDBC技术实现,1个方法insertLoginLog()接口方法,登录日志插入的操作

----------------------UserDao.java访问User的DAO,Spring JDBC技术实现,包括3个方法getMatchCount()根据用户名和密码获取匹配的用户数findUserByUserName()根据用户名获取User对象updateLoginInfo()更新用户积分

----------------domain(领域对象,也称实体类,严格属于业务层,但可能同时被持久层和展现层共享,所以单独分一个包)

----------------------LoginLog.java(日志信息,对应t_login_log数据库表

----------------------User.java(用户信息,对应t_user数据库表的对象映像,每个字段对应一个对象属性

----------------service(业务层,登录实例中,只有一个业务类

----------------------UserService.java业务接口,将持久层两个dao组织起来,完成用户名/密码认证、登录日志记录等操作,有3个业务方法hasMatchUser()用于检查用户名/密码的正确性findUserByUserName()以用户名为条件加载User对象loginSuccess()用户登录成功后调用,更新用户最后登录时间和IP信息t_user,同时记录用户登录日志t_login_log

----------------web(展现层

----------------------LoginCommand.java(POJO,包括用户/密码这两个属性

----------------------LoginController.java(POJO控制器类,负责处理登录请求,完成登录业务,并根据登录成功与否转向欢迎页面或失败页面。1、标注成为一个Spring MVC的Controller;2、负责处理/index.html的请求;3、负责处理/loginCheck.html的请求;

---------resources

------------log4j.properties(日志配置文件,放在类路径下,以便日志引擎自动生效)

------------smart-context.xml(Spring配置文件,DAO Bean的配置,1、扫描dao类包,将标注Spring注解的类自动转化为Bean,同时完成Bean注入;2、定义DBCP实现的数据源;3、定义JDBC模板bean,将2处声明的数据源注入模板里,这个模板通过注解自动注入UserDao和LoginLog的Bean中 | 1、引入aop及tx命名空间所对应的Schema文件;2、扫描service类包,应用Spring的注解配置;3、配置事物管理器,需要引用数据源;4、通过AOP配置提供事务增强,让service包下所有Bean的所以方法拥有事务)

--------webapp

------------jsp

----------------login.jsp

----------------main.jsp

------------META-INF

----------------MANIFEST.MF

------------WEB-INF

----------------jsp

----------------------login.jsp(登录页面,及登录失败后的响应页面

----------------------main.jsp(欢迎页面

----------------smart-servlet.xml(Spring MVC配置文件,声明控制器。1、扫描Web包,应用Spring的注解;2、配置视图解析器,将ModelAndViex及字符串解析为具体的页面

----------------web.xml(配置Spring MVC框架,以便Web容器启动时能够自动启动Spring容器。1、从类路径下加载Spring配置文件,classpath关键字特指类路径下加载;2、启动Spring容器的监听器,引用1处的上下文参数获得spring配置文件的地址;3、配置Spring MVC的主控Servlet,及Spring MVC处理的URL

------------index.jsp

------------log4j.properties

----test

--------java

------------com.smart.service(对业务类进行单元测试,检验业务方法的正确性,1、TestNG依赖包添加到根模块pox.xml文件中;2、启动Spring容器;3、注入Spring容器中的Bean;4、标注测试方法

----------------------UserServiceTest.java

-pom.xml(依赖的Spring模块类库;依赖的数据库驱动类库;依赖的连接池类库;依赖的Web类库)

应用Spring Boot快速完成上述基于Spring的Web项目开发

-src

----main

--------java

------------com.smart

----------------dao(持久层,负责数据的访问和操作,DAO类被上层的业务类调用)

----------------------LoginLogDao.java(负责记录用户的登录日志,Spring JDBC技术实现,1个方法insertLoginLog()接口方法,登录日志插入的操作

----------------------UserDao.java(访问User的DAO,Spring JDBC技术实现,包括3个方法getMatchCount()根据用户名和密码获取匹配的用户数,findUserByUserName()根据用户名获取User对象,updateLoginInfo()更新用户积分

----------------domain(领域对象,也称实体类,严格属于业务层,但可能同时被持久层和展现层共享,所以单独分一个包)

----------------------LoginLog.java(日志信息,对应t_login_log数据库表

----------------------User.java(用户信息,对应t_user数据库表的对象映像,每个字段对应一个对象属性

----------------service(业务层,登录实例中,只有一个业务类

----------------------UserService.java(业务接口,将持久层两个dao组织起来,完成用户名/密码认证、登录日志记录等操作,有3个业务方法hasMatchUser()用于检查用户名/密码的正确性,findUserByUserName()以用户名为条件加载User对象,loginSuccess()用户登录成功后调用,更新用户最后登录时间和IP信息t_user,同时记录用户登录日志t_login_log

----------------web(展现层)

----------------------LoginCommand.java(POJO,包括用户/密码这两个属性)

----------------------LoginController.java(POJO控制器类,负责处理登录请求,完成登录业务,并根据登录成功与否转向欢迎页面或失败页面。1、标注成为一个Spring MVC的Controller;2、负责处理/index.html的请求;3、负责处理/loginCheck.html的请求;)

----------------Application.java(应用主类,启动Spring Boot,启用注解事务管理,继承Spring Boot提供的Servlet初始化器,并重写它的configure()方法

---------resources

------------application.properties(配置数据库的连接信息,为了让Spring Boot能够自动装配数据源的连接。1、配置数据库连接信息;2、指定自定义连接池;3、连接池配置信息;4、配置JNDI数据源;5、初始化数据库脚本;配置创建好的视图路径;Actuator服务健康检查属性配置

--------webapp

------------public(静态文件JS、CSS、Image)

----------------spring.png

------------resources(静态文件JS、CSS、Image)

----------------spring.png

------------static(静态文件JS、CSS、Image)

----------------spring.png

------------WEB-INF

----------------jsp

----------------------login.jsp(登录页面,及登录失败后的响应页面)

----------------------main.jsp(欢迎页面)

----------------------hello.jsp

-pom.xml(继承Spring Boot默认配置;根据应用需要添加不同类型(比如Boot Web,JDBC,jasper,jstl)启动器依赖;配置运行插件;添加监控功能Actuator)

由上可见Spring Boot配置文件少了,具体如何实现各功能应用请见下章。

——《精通Spring 4.x 企业应用开发实战》第2章 第3章