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章