• 项目结构


    src

      pojo

      存放所有的pojo类,即model层。这里用myeclipse的自动反转的方式,在构建好数据库表之后生成对应的pojo类。注意如果是手动操作的话,要表属性名和数据库表的字段名映射好。

      应该要注意的是,在存在一对多关系的时候,如这里的user—>question,一个用户可以提出多个问题,所以手动设置的时候要以集合的方式来设置属性之间的关系,还有在用@Many-To-One时,设置feach的时候要设置成lazy(懒加载),不要设置为eager,这样性能会高点。

      dao

      存放IDao和IXxxDao操作接口,主要在里面封装好具体的方法,在后面的impl类中实现。

      daoimpl

      dao的实现类,在这里要实现好具体dao的实现接口,还要继承hibernateDaoSupport对象,然后在实现类中用构造方法(Autowired)进行注入,注意注入的是hibernateTemplate对象。当然在applicationContext.xml中要配置好hibernateTemplate和sessionFactory。在这里,因为是用annotation进行注入的操作,所以在类上面,要用@Component来把类映射为组件,默认设置的注解名是类名的首字母小写。即UserDAOImpl的组件的名字为userDAOImpl。然后再具体的方法操作中,可以直接调用super.getHibernateTemplate()的具体方法进行操作。在复杂的操作中可以使用execute的方式,表示的是用内部类,也是hibernateCallback的方式进行操作。分页的时候也可以用DetachedCriteria对象来操作,该对象封装了很多方法,包括模糊查询,排序,聚合函数等等,详细的自己查阅相关资料。然后再调用hibernateTemplate的findByCriteria()操作传入对象进行操作。

      service

      服务层接口,因为可以一个操作需要调用一个dao操作的多个方法,或者调用多个dao的操作,这个时候如果一个个的调用dao的操作,那么会访问多次数据库,这样的操作肯定性能是很差的,所以提供了一个service层接口,该接口层中主要是用Map<String,Object>的方式来存放数据,当然也要视情况而定。

      serviceimpl

      服务层的具体实现类,该类要实现好service接口,并覆写里面的方法。在这里,我们同样是用annotation的方式来进行注解的操作。所以在类的方法上面要用@service进行映射成主键,当然因为在这里需要用到dao操作,所以同样需要使用注解进行注入,不过在这里我们使用的是set方法注入,也就是在setXxxDAO操作的上面用@resource,指定name属性,这里的name属性的值是在daoimpl中用@component映射的组件的名称。所以这样在覆写方法的时候就可以直接调用dao的具体操作了。

      action

      action主要是接收前台用户的数据,然后调用具体的服务层的操作,通过dao和数据库进行打交道,然后用return “…”的方式来返回jsp的视图的操作,当然这里还需要在struts.xml中进行配置。

      在action中,因为需要要使用到service的操作,所以同样需要进行注入,这里同样是用set方法进行注入,就不重复说明了,不过同样需要在类上面用annotation进行注解,在这里使用的注解是@repository,映射成组件,然后再struts.xml中配置action的时候class路径直接配置成组件的名字即可,组件的名字同样为action类的类名称,只是把首字母小写即可。在action中默认是启动单例操作的,但是我们在操作中有时候是要取消单例的,那么我们就可以用@scope(“prototype”)来进行设置了,这样进行取消了单例。

      filter

      顾名思义,这里指的是过滤器的意思,主要是配置过滤器,然后再web.xml文件中进行配置,实现自己想要过滤的功能,如登录验证,权限管理等等。

      util

      工具包,主要是存放一些工具类,如MD5加密,自动生成订单号等等。

      /

      这里的/表示把文件存放在根目录的意思,很明显如果是在src目录下只有以上的文件目录(package)的话,程序是无法正常运行的,因为缺乏了配置文件。这里应该盛放的有:

      struts.xml文件:很明显是struts的配置文件,具体的操作请查阅struts的相关资料。

      struts.properties:struts的属性文件,在这里可以配置struts的一些参数,如配置编码,在该文件中编写:struts.i18n.encoding=GBK即可。

      message.properties:这是自己的属性文件,可以设置一些提示信息等等,不过需要在struts.properties文件中进行配置。

      applicationContext.xml文件:这是spring的配置文件,主要是进行spring的ioc或者aop的操作,具体的操作请查阅spring的相关资料。

      log4j.properties文件:log4j的配置,主要是进行日志的记录。

      数据库创建脚本.sql:这是数据库的创建脚本,养成一个良好的习惯,把项目中的创建脚本编写成文件放在src下,方面以后别人的维护。

    WebRoot

      jsp

      jsp主要是存放具体的jsp页面,一般会有前后台的操作,所以建议是在jsp目录下创建两个子目录front 、back。表示盛放的是前后台的信息,然后再front和back目录下再创建新的子目录,这些子目录建议以模块名进行命名。

      js

      js的验证脚本,不管是我们自己编写的验证脚本,还是前台工作人员给我们提供的js文件,建议存放在该目录下,然后再具体调用的时候用绝对路径进行操作,这样就不会出现在每个jsp目录下都会出现相应的js文件夹的情况了,便于管理。当然也要视情况而定,这里只是建议而已。

      image/css

      这里同js是一样的,也是便于管理。要记得的是使用的时候要用绝对路况。

  • 相关阅读:
    linux-log-files/
    SSL SSH
    C++学习的书籍
    Linux IO 分析
    LINUX 常用操作
    Find Large Files in Linux
    Linux 常见操作
    Linux Performance tool
    /linux-command-line-bash-shortcut-keys/
    Sed
  • 原文地址:https://www.cnblogs.com/littleQin/p/3619039.html
Copyright © 2020-2023  润新知