Javaweb项目实战教程,零开发的项目要点_极悦注册
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 Javaweb项目实战教程,零开发的项目要点

Javaweb项目实战教程,零开发的项目要点

更新时间:2020-03-30 14:11:58 来源:极悦 浏览1914次


  Javaweb项目实战教程,零开发的项目要点,开发一个传统JavaWeb项目需要注意的要点,从环境准备开始到三层架构搭建,需要注意的地方全部罗列出来。


Javaweb项目实战教程,零开发的项目要点


  第一部分:环境准备


  1.Maven命令创建web骨架


  mvnarchetype:create-DgroupId=net.rocketa-DartifactId=mywebapp-DarchetypeArtifactId=maven-archetype-webapp


  注意webservlet版本(web.xml,3.1),Junit版本指定为4.X(这样Spring好通过注解的方式来运行单元测试)


  2.注意在IDEA中需要设置好MAVEN工程的Sources/Tests/Resources/TestResources属性。


  3.日志依赖


  slf4j:规范和接口


  具体的日志实现有:


  log4j、logback、common-logging


  因此我们一般是使用slf4j接口+一种具体的日志实现+slf4j和这个具体日志实现的依赖整合


  4.数据库依赖


  有2个依赖,需要注意,一个是驱动,一个是数据库连接池(C3P0,DBCP...)。


  驱动JAR包是运行期需要包含,编译期不需要的。


  5.持久层框架依赖


  说白了,DAO层的框架依赖:MyBatisorHibernateor....


  比如除MyBatis本身的依赖需要引入之外,还需要引入MyBatis和Spring的整合依赖。


  6.Web层依赖


  比如,JSP中使用到的一些JSTL、标签、Ajax访问JSON等,还有需要注意的是,在编译期需要引入servlet-api。


  7.Spring核心依赖


  spring-core、spring-beans、spring-context


  8.Spring和DB之间的整合依赖


  Spring是需要介入DB的管理的,比如它的声明式事务。


  spring-jdbc、spring-tx


  9.Spring对Web的一些整合依赖


  spring-web、spring-webmvc


  10.Spring对Junit的支持依赖


  spring-test


  NOSQL对事务的支持不是很好,它主要追求的是性能、高可用、分布式。


  MySQL等关系型数据库对事务的支持是很成熟的,也是很可靠的落地方案。


  第二部分:DAO层


  NOSQL对事务的支持不是很好,它主要追求的是性能、高可用、分布式。


  MySQL等关系型数据库对事务的支持是很成熟的,也是很可靠的落地方案。


  1.表


  可以在项目中建立一个SQL文件,便于SQL的管理。


  注意,表的存储引擎(事务的支持:innodb)、自动增长的特性、编码、主键和索引。


  一个良好的习惯是:为所有的表都添加一个创建时间字段,用于记录,方便排查。


  应该为表名、列名添加注释,方便其他工程师查阅。


  应该注意SQL技巧,比如插入存在唯一约束的表中,如果出现冲突不想报错的话,可以:insertignoreinto....(可以通过返回的影响行数来进行判断)


  2.Dao层实体


  一些业务对象的建立,setter/getter/toString等就不说了,需要特别注意的是,除了表的字段之外,还需要什么属性?这里涉及到一个一对一、一对多,多对多的概念!


  3.Dao层接口和mappersql


  MyBatis的特点:从SQL(参数+sql)映射到Entity/List(定制SQL、自由传递参数、结果集自动赋值)


  使用MyBatis的方式:SQL写在XML中,或者注解提供SQL。更加推荐的是XML,因为更加灵活,XML提供的动态拼接功能也是比注解简单的多。


  一个全局的mybatis配置文件+具体的SQL文件+DAO接口:让我们只需要设计接口,关注业务逻辑,解放出来。


  在全局mybatis配置文件中重点注意:是否开启驼峰转换,获取数据库自增主键,列别名替换列名等。


  注意DAO接口和具体的SQL文件之间的对应关系。


  具体SQL写法中,比如#{},<![CDATA[...]]>等需要引起注意。


  输入参数类型parameterType,如果是多个基本类型,那么不用给出来。


  即便返回的是List对象,我们的resultType依然指定的是集合中的对象类型。


  在Mybatis的SQL文件中是可以通过OGNL表达式来对对象中的一些对象类型的属性进行赋值的!


  表名.xxx或者表名.xxxasyyy对于Mybatis而言,会忽略表名.前缀,也会忽略as。


  另外,注意在Dao接口中,如果方法有多个基本类型参数,别忘了通过@Param来进行运行期参数标记!


  总结:Dao层的工作逐渐演变成接口设计和SQL编写了,这种代码和SQL的分离方式,便于我们进行review,而Dao的拼接将在Service层完成。


  4.一些优化配置


  比如,对带包路径的类型进行简化,通过配置扫描包。


  比如,批量扫描SQL文件,通过自动扫描配置文件。


  5.mybatis和spring需要整合


  spring需要接管数据库


  JDBC的一些连接信息,数据库连接池的一些配置信息,就是配置DataSource的过程。


  spring和mybatis整合的核心


  SqlSessionFactory是MyBatis的配置核心,把DataSource注入,并指明MyBatis的全局配置文件位置,typeAliasesPackage扫描,mapper文件位置扫描等。


  spring通过动态代理帮助生成Dao的代理实现类(MapperScannerConfigurer)


  注入SqlSessionFactory(通过sqlSessionFactoryBeanName),指明Dao接口的包路径basePackage


  总之,配置的一项原则是:约定优于配置!!!


  第三部分:进行SpringJunit单元测试


  当我们进行了一些配置,写了一些SQL,Dao接口后,应该要进行SpringJunit单元测试,可以通过IDEA快速的生成测试用例(很好用的一个功能,因为IDEA可以帮助我们快速在test下建立与dao/service接口的同级目录下生成用例)


  在用例中,我们只需要在类上打上注解:


  @RunWith(SpringJUnit4ClassRunner.class)


  @ContextConfiguration({"classpath:spring配置文件"})


  加载Spring容器后,我们就可以在用例中注入对象,开始测试了!!!


  Javaweb项目实战教程,零开发的项目要点


  以上就是极悦java培训机构的小编针对“Javaweb项目实战教程,零开发的项目要点”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>