搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构

根据刚刚搭建好的基础环境,下面开始构建包结构,还有启动和配置项

1.先是包结构,

包结构最先确定,这样可以有效的保证代码有序,也能尽可能的做到功能分类

个人建议:自定义工具,配置项,项目主题,这仨单独分包,当然我个人的话,会把数据实体类再单独分包,这个就看各人喜好了

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第1张图片

差不多就是这样的包结构,最好见名知意;

2.搭建配置项

2-1,启动项

这里要做的就是构建个启动类,由于整个项目不用任何xml文件(后期如果需要日志的话,还是免不了配置文件的),所以启动需要单独写类:

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第2张图片

自建个类,连接WebApplicationInitializer接口(不怎么喜欢把implements说成'实现',因为java里的接口确实是实实在在的连接功能,尤其是在spring项目里),然后会强制重写onStartup方法

servletContext里有个addServlet方法.把DispatcherServlet加进去就好;但是在加入之前,要让AnnotationConfigWebApplicationContext注册好一些配置类,然后带入到DispatcherServlet里;之后配置一下这个Servlet就行了,大致如图:

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第3张图片

说白了就是以前web.xml的那些玩意er...但是以Java代码形式更直观,而且更容易更改一些配置

2-2.SpringJDBC(数据库,数据实体类)配置:

首先需要确定一下需要的配置的东西:(1)数据库连接池;(2)数据实体类;(3)数据库操作框架(Hibernate与Mybatis共存)

这里说一下,事务管理交给了hibernate,没有让mybatis涉及事务,一开始的设计核心就是Hibernate去操作(增删改),mybatis去查询以及特殊操作(不需要事务支持且操作方式特殊)

大致知道了这些配置原则,直接配置就好:

(1)连接池:

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第4张图片

这里根据个人爱好,可以自己选择是否把连接信息写入代码,或者单分一个配置文件里

(2)数据库操作框架(Hibernate与Mybatis共存)

1)Hibernate:

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第5张图片

这里加了个HibernateTemplate,为了项目里能简化操作;因为我用的是Oracle数据库,所以hibernate.dialect里设置的是org.hibernate.dialect.Oracle10gDialect,如果用的是其他数据库,直接百度hibernate.dialect就能找到非常详细的对应设置;hibernate.hbm2ddl.auto这个设置个人建议为update,省心省事;bean.setPackagesToScan("datamodel"),这里设置了数据实体类的位置,因为要使用javax.persistence系列注解,可以代替Hibernate的xml配置文件,所以就需要添加对数据实体类的扫描

2):Mybatis:

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第6张图片

这里配置Mybatis没什么太多的疑难,注意加个pagehelper做分页就好;重点是类上面的注解,@Configurable告诉Spring这个类是个配置类,@MapperScan,扫描mapper接口所在包,@ComponentScan这是个常规扫包,这里让它扫service层(业务层),和dao层(数据操作层,因为Mybatis有上面的@MapperScan注解单独扫描,所以这里主要是hibernateTemplate自定义操作的接口)

@EnableTransactionManagement注解是Spring管理事务所使用的注解,即使下面有Hibernate事务处理,也是需要配合Spring的事务来共同完成的

(3)数据实体类

这个只要把类写到上面Hibernate配置里setPackagesToScan中指定包里就可以了,至于实体类里的注解,这个后面在讲解;

2-3.SpringMVC

这个按照项目要求,配置可能有些不同,比如JSP项目,模板项目,前后json项目;不过大同小异的就是展示层内视图解析器的不同,以及资源控制器的配置

(1)资源控制:

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第7张图片

连接WebMvcConfigurer这个接口,重写上图两个方法即可放行静态资源(ajax传输就当我没说-__-),然后类上面的注解,配置扫描@Controller/@RestController的包就好了,@EnableWebMvc注解启用告诉Spring这里启用WebMVC

(2)文件上传:

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第8张图片

(3)视图解析器:

这里以Jackson为例:

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第9张图片

这里把Jackson试图解析器加入到SpringMVC里,然后配置一下Jackson:

搭建常规SSHM项目(Spring,Mybatis,Hibernate),阶段2:构建启动和包结构_第10张图片

这里的配置都是网上常用的配置,没有什么可以特别要说的;

----------------------------------------------------------------------------------

至此,真个项目的配置基本完成,后续如果有什么别的需要配置的,只要按照相应的规则自定义就好;比如我现在的项目用到shiro,只需要再手动加入个shiro的配置类,然后注册到Web启动类里的AnnotationConfigWebApplicationContext就可以了;

你可能感兴趣的:(Spring研究)