spring整合实践 - velocity

此段内容说明如何整合spring与velocity。
此文并不介绍如何使用velocity代替jsp作为页面渲染配置(参考:VelocityAndSpringStepByStep),仅仅只是输出特定格式的html、xml或文本等内容的整合实践。

一、配置spring mvc

首先,web.xml添加spring容器配置:spring-beans.xml, spring-mvc.xml.

velocity engine实例化

对于spring父容器spring-beans.xml,除开启注解,注入配置文件等基本配置外,向容器添加velocity engine对象定义,注入velocityEngine对象。

具体配置片段如下:

1
2
3
4
<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="resourceLoaderPath" value="/WEB-INF/vm/" />
<property name="configLocation" value="classpath:velocity.properties" />
</bean>

其中,将velocity模板放置在/martinye-demo-spring-velocity/src/main/webapp/WEB-INF/vm目录,将velocity.properties文件放置在/martinye-demo-spring-velocity/src/main/resources目录。
:vm模板也可以放置到src/main/resources目录下。

spring mvc service实例化二次问题

描述:错误地spring容器配置,导致spring实例service二次。

项目现状

web.xml配置

web容器,首先加载spring-beans.xml配置,再加载spring-mvc.xml配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-beans.xml</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Processes application requests -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

spring特性实践 - AOP

此段内容说明如何使用spring aop,并通过一个函数耗时统计切面demo来讲述使用具体步骤。

一、创建maven工程

通过STS创建一个maven工程martinye-demo-spring-support。

修改pom.xml文件,添加项目相关依赖如下:

servlet

  • javax.servlet-api
  • jstl
  • standard
  • jsp-api

spring

  • spring-webmvc
  • aspectjweaver

log

  • slf4j-api
  • slf4j-log4j12

utils

  • commons-lang3
  • commons-collections
  • commons-io
  • guava
  • fastjson

test

  • junit
  • spring-test

jenkins节点重启脚本

远程重启jenkins节点脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
NODE_CONFIG=nodes.ini
JENKINS_CLIENT_COMMAND=/opt/work/local/jenkins/jenkins-client/bin/client.sh
start_nodes() {
while read node
do
if [ -z "$node" ]; then
continue;
fi
echo "current node: $node";
start_remote_jenkins $node;
done < $NODE_CONFIG
}
start_remote_jenkins() {
remote_ip=$1
ssh $remote_ip 2>&1 << remote_command
sh $JENKINS_CLIENT_COMMAND;
exit;
remote_command
}
start_nodes
|