`
georgezeng
  • 浏览: 102472 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

手把手教会你开发动态web项目(2)

 
阅读更多

这一章主要讲项目的结构。

1. 项目使用gradle进行管理,如果你熟悉可以跳过这段,这里简单介绍一下。Gradle是一个类似于maven的项目管理构建工具,配置文件为项目根目录底下的build.gradle,你可以在这里配置项目的第三方依赖包。

dependencies {
    def springFrameworkVersion = "4.2.5.RELEASE"
compile "org.springframework:spring-context:${springFrameworkVersion}"
compile "org.springframework:spring-core:${springFrameworkVersion}"
compile "org.springframework:spring-aop:${springFrameworkVersion}"
compile "org.springframework:spring-beans:${springFrameworkVersion}"
compile "org.springframework:spring-expression:${springFrameworkVersion}"
compile "org.springframework:spring-web:${springFrameworkVersion}"
compile "org.springframework:spring-webmvc:${springFrameworkVersion}"
compile "org.springframework:spring-aspects:${springFrameworkVersion}"
compile "org.springframework:spring-orm:${springFrameworkVersion}"

def springSecurityVersion = "4.0.4.RELEASE"
compile "org.springframework.security:spring-security-web:${springSecurityVersion}"
compile "org.springframework.security:spring-security-config:${springSecurityVersion}"

compile "org.codehaus.groovy:groovy-all:2.3.11"
compile "org.hibernate:hibernate-core:5.1.0.Final"
compile "com.typesafe.scala-logging:scala-logging-slf4j_2.10:2.1.2"
compile "com.typesafe:config:1.3.0"
compile 'ch.qos.logback:logback-classic:1.1.6'
compile "javax.servlet:jstl:1.2"
compile 'org.apache.commons:commons-dbcp2:2.1.1'
compile 'javax.transaction:jta:1.1'
compile 'mysql:mysql-connector-java:5.1.27'
compile 'com.fasterxml.jackson.core:jackson-databind:2.7.2'

providedCompile "javax.servlet:javax.servlet-api:3.1.0"

testCompile "org.springframework.boot:spring-boot-starter-web:1.3.2.RELEASE"
testCompile "org.springframework:spring-test:${springFrameworkVersion}"
testCompile group: "junit", name: "junit", version: "4.12"
testCompile 'com.h2database:h2:1.4.191'

def tomcatVersion = '7.0.59'
tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
            "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
            "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
}

可以看到它其实就是一个动态脚本,基于groovy语法,所以你可以灵活的在里面添加代码来实现你需要的管理功能

 

2. 代码结构



 如图,src下面分为了main和test,框架的核心代码写在了src/main/scala底下,web静态资源存放在webapp目录下,重点则放在了resources底下,再如图



 
 可以看到resources下有个dev目录,里面存放的是application.conf文件,此文件定义了项目中需要使用的一些配置,比如数据库链接,hibernate配置等。这里你还可以看到在resources目录底下也有一个application.conf,框架会先读取这个下面的配置,再读取相应的环境下的application.conf,比如上面的dev,所以在dev中你可以覆盖resources下的application.conf的配置信息。除了dev,你还可以配置test,uat,staging和production。需要你相应的为其创建目录。

 

db.sql则是提供了创建所有数据表的sql,目前里面提供了最主要的几个表,User,Role,UserRole和RoleAuthority表,提供给spring security使用。

 

logback.xml则是用来配置应用的日志

 

groovy目录下存放的是所有跟业务相关的开发代码,我们主要关心的就是这个目录,所有动态的实现都在这里。你需要在这里创建groovy文件,但是你不需要使用groovy语法,因为groovy也支持原生的java语法,所以你只需要写java代码就可以了。但是推荐你学习一下groovy,你会喜欢上它的动态特性和简洁的代码大笑

这里稍微解释一下为什么把groovy目录放在resources下的原因。在application.conf中有一个groovy的配置,里面需要你设置groovy的文件的根目录,目的是让框架可以知道groovy文件所在的位置而去读取源代码进行类的动态加载,如果是放在src底下,IDE会自动编译groovy的类,从而导致没办法动态读取源文件。而当你需要部署你的代码到正式环境下时,你需要单独为你的groovy文件部署到某个文件目录下,并重新再application.conf文件中指定目录,因为war不会对这些groovy文件进行打包。

 

 

 

 

  • 大小: 28 KB
  • 大小: 13.5 KB
  • 大小: 17.4 KB
  • 大小: 15.8 KB
分享到:
评论

相关推荐

    手把手教会你无刷电机(赠送).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    基于stm32的手把手教会你无刷电机(赠送).zip

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    第一章1节手把手教会无刷电机PCB.pptx

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    第一章4节手把手教会无刷电机1PCB.pptx

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    第一章6节手把手教会无刷电机1PCB.pptx

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    第一章5节手把手教会无刷电机1PCB.pptx

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...

    web 2.0入门者 Ajax修炼之道-包含源码

    不仅教会你Ajax的技术细节,同时还带你了解各种功能强大的主流Ajax工具包(Dojo、Prototype、 Script.aculo.us、DWR、Backbase、SmartClient、Ajax.NET、SAJAX、JSON-RPC),掌握Ajax 实时查看源代码的方法以及进行...

    小白都能看得懂的教程 一本教你如何在前端实现富文本编辑器

    小白都能看得懂的教程 一本教你如何在前端实现富文本编辑...小白都能看懂的实战教程 手把手教你Python Web全栈开发 第二讲:[小白都能看懂的实战教程 手把手教你Python Web全栈开发 第二讲] 在前端实现富文本编辑器 这

    flask搭建.md

    由于flask属于轻量级web框架, 更加自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库 。...以下手把手教会你如何搭建flask,及项目设计结构。

Global site tag (gtag.js) - Google Analytics