到目前为止我们自定义了一个build.gradle和settings.gradle文件,随着你添加越来越多的子项目和任务到build.gradle中,代码的维护性将会下降。通过给每个子项目建立一个单独的build.gradle文件可以解决这个问题。接下来我们在每个子项目的目录下创建一个build.gradle文件,目录如下:现在你可以把构建逻辑从原先的build脚本中拆分开来放到合适的位置。
到目前为止你已经把ToDo项目根据功能拆分成多个模块,接下来可以用之前的方法来定义构建逻辑,下面有几点需要主要:根目录和子目录使用相同的group和version属性值所有的子目录都是Java项目需要Java插件来正常工作,所以你只需要在子项目中应用Java插件web子项目是唯一一个依赖外部库的项目,它需要打包成WAR而不是JAR子项目之间可以定义模块依赖接下来你将学习如何定义…
上一节你给你的项目定义了一个层次化的目录结构,整个项目包含一个根目录和每个模块一个子目录,这一节你将学习怎么用Gradle来构建这样一个项目结构。首先在你的根目录新建一个build.
在企业项目中,包层次和类关系比较负责,把代码拆分成模块是一个比较困难的任务,因为这需要你清晰的划分功能的边界,比如把业务逻辑和数据持久化拆分开来。解耦和聚合但你的项目符合高内聚低耦合时,模块化就变得很容易,这是一条非常好的软件开发实践。
Gradle支持下面三种不同类型的仓库:下图是配置不同仓库对应的Gradle API:下面以Maven仓库来介绍,Maven仓库是Java项目中使用最为广泛的一个仓库,库文件一般是以JAR文件的形式存在,用XML(POM文件)来来描述库的元数据和它的传递依赖。所有的库文件都存储在仓库的指定位置,当你在构建脚本中声明了依赖时,这些属性用来找到库文件在仓库中的准确位置。
DSL配置block dependencies用来给配置添加一个或多个依赖,你的项目不仅可以添加外部依赖,下面这张表显示了Gradle支持的各种不同类型的依赖。这一章直接扫外部模块依赖和文件依赖,我们来看看Gradle APi是怎么表示依赖的。
在前面我们学习了怎么使用Jetty插件来使用自带的Jetty容器来部署一个TODo应用,Jetty是一个轻量级的开发容器,启动非常快。很多企业级的应用都使用其他的Web容器来部署应用,假设你使用的是Apache Tomcat。
作为一个构建脚本的开发者,你不应该局限于编写任务动作或者配置逻辑,有时候你想在指定的生命周期事件发生的时候执行一段代码。生命周期事件可以在指定的生命周期之前、之中或者之后发生,在执行阶段之后发生的生命周期事件就该是构建的完成了。
每个新创建的任务都是org.gradle.api.DefaultTask类型,org.gradle.api.Task的标准实现,DefaultTask所有的域都是私有的,意味着他们只能通过setter和getter方法来访问,庆幸的是Groovy提供了一些语法糖来允许你通过名字来使用域。
Java服务端的Web组件(JavaEE)提供动态扩展能力允许你在web容器或者应用服务器中运行你的程序,就像Servlet这个名字的意思,接收客户端的请求返回响应,在MVC架构中充当控制器的角色,Servlet的响应通过视图组件--JSP来渲染,下图展示了一个典型的MVC架构的Java应用。
上一节我们简要介绍了如何编写一个单机的To Do应用,接下来要打包部署成可执行的应用,我们需要编译源代码,生成的class文件需要打包到JAR文件中。JDK提供了javac 和jar工具帮助你实现这些任务,但是你也不想每次源代码发生变化时你都手动去执行这些任务吧。
第一个Gradle项目这一章将通过一个例子来介绍Gradle的强大特性,你将从中学到怎么用Gradle的标准插件来引导、配置和运行你的应用,这章结束的时候你应该对Gradle的工作机制有个清晰的认识。
我们可以用Gradle命令来执行特定的任务,运行一个任务需要你知道该任务的名称,如果Gradle能够告诉你有哪些任务可以执行那岂不是很棒?Gradle提供了一个辅助的任务tasks来检查你的构建脚本,然后显示所有的任务,包含一个描述性的消息。
面向对象的六大原则单例模式建议实现方式无参数时,static inner holder class方式:public class Singleton { private Singleton() { // singleton } public static getInstance() { return InstanceHolder.sInstance;
在我们开发一些具有综合功能的项目时,往往会碰到一种情况,需要同时连接多个数据库,这个时候就需要用到多数据源的设计。而 Spring 与 Myabtis 其实做了多数据源的适配,只需少许改动即可对接多数据源。本期我们就贴近实战,以一个单数据源的 Demo 为例,讲述将其改为多数据源项目的过程,希望大家能有所体会。
关注时代Java