本项目依赖于两个 classpath 资源: Main
类通过 classpath 资源
log4j.preoperties
来配置 Log4J ,
WeatherFormatter
引用了一个在 classpath 中的名为
output.vm
的 Velocity 模板。这两个资源都需要在默认包中(或者 classpath
的根目录)。
为了添加这些资源,我们需要在项目的基础目录下创建一个新的目录——
src/main/resources
。 由于任务
archetype:create
没有创建这个目录,我们需要通过在项目的基础目录下运行下面的命令来创建它:
$ cd src/main $ mkdir resources $ cd resources
在这个资源目录创建好之后,我们可以加入这两个资源。首先,往目录 resources
加入文件
log4j.properties
。
Example 4.9. Simple Weather 的 Log4J 配置文件
# Set root category priority to INFO and its only appender to CONSOLE. log4j.rootCategory=INFO, CONSOLE # CONSOLE is set to be a ConsoleAppender using a PatternLayout. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=INFO log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%-4r %-5p %c{1} %x - %m%n
这个 log4j.properties
文件简单配置了 Log4J ,使其使用
PatternLayout
往标准输出打印所有日志信息。 最后,我们需要创建
output.vm
,它是这个命令行程序用来呈现输出的 Velocity 模板。 在
resources
目录创建 output.vm
。
Example 4.10. Simple Weather 的 Output Velocity 模板
********************************* Current Weather Conditions for: ${weather.city}, ${weather.region}, ${weather.country} Temperature: ${weather.temp} Condition: ${weather.condition} Humidity: ${weather.humidity} Wind Chill: ${weather.chill} *********************************
这个模板包含了许多对名为 weather
的变量的引用。 这个
weather
变量是传给 WeatherFormatter
的 那个 Weather
bean,
${weather.temp}
语法简化的表示获取并显示 temp
这个bean属性的值。 现在我们已经在正确的地方有了我们项目的所有代码,我们可以使用 Maven 来运行这个样例。