这一章主要讲项目的结构。
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文件进行打包。
相关推荐
三层架构是一种常见的软件设计模式,尤其在开发企业...通过学习和实践这个教程,你可以深入理解C#中三层架构的运用,提升你的软件开发能力。如果在学习过程中遇到问题,记得及时寻找帮助,以便更好地掌握这一核心技术。
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
### 零基础学习Python+手把手教会 #### 一、Python简介 1. **Python定义及特点**: - **定义**:Python是一种高级编程语言,由Guido van Rossum于1991年创建。 - **特点**: - **简单易学**:Python的设计理念...
### 使用HelloWorld示例详解FLEX BlazeDS应用开发 #### 一、BlazeDS简介 BlazeDS是一款由Adobe开源的服务器端Java技术,主要用于实现Java应用程序与...希望本教程能帮助你更好地理解和掌握BlazeDS的应用开发流程。
不仅教会你Ajax的技术细节,同时还带你了解各种功能强大的主流Ajax工具包(Dojo、Prototype、 Script.aculo.us、DWR、Backbase、SmartClient、Ajax.NET、SAJAX、JSON-RPC),掌握Ajax 实时查看源代码的方法以及进行...
小白都能看得懂的教程 一本教你如何在前端实现富文本编辑...小白都能看懂的实战教程 手把手教你Python Web全栈开发 第二讲:[小白都能看懂的实战教程 手把手教你Python Web全栈开发 第二讲] 在前端实现富文本编辑器 这
由于flask属于轻量级web框架, 更加自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库 。...以下手把手教会你如何搭建flask,及项目设计结构。
2. **环境搭建:**《演练:新建ASP.NET网站》手把手教你如何利用Visual Web Developer创建首个ASP.NET页面,从项目初始化到页面布局,每一步都详细说明,非常适合初学者。 3. **代码编辑实战:**《演练:Visual Web...
2. 开发工具:Dreamweaver 8 3. 数据库管理系统:SQL Server 2000 4. 运行环境:Windows 98/ME/2000/XP 系统功能结构图数据流图总结: 通过近半年的学习与实践,对进电子书吧系统进行了可行性分析、需求分析,并...