`
javaso
  • 浏览: 53217 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

由springSide引发的小笔记

    博客分类:
  • java
阅读更多
      struts.convention.result.path="/WEB-INF/content/": 结果页面存放的根路径,必须以 "/" 开头。
      struts.convention.action.suffix="Action": action名字的获取 
      struts.convention.action.name.lowercase="true": 是否将Action类转换成小写
      struts.convention.action.name.separator="-": 
      struts.convention.action.disableScanning="false": 是否不扫描类。
      struts.convention.default.parent.package="convention-default":设置默认的父包。
      struts.convention.package.locators="action,actions,struts,struts2": 确定搜索包的路径。
      struts.convention.package.locators.disable="false": 
      struts.convention.package.locators.basePackage="": 

 

写道
包命名习惯来指定Action位置
命名习惯制定结果(支持JSP,FreeMarker等)路径
类名到URL的约定转换
包名到命名空间(namespace)的约定转换
遵循SEO规范的链接地址(即:使用my-action 来替代 MyAction)
基于注解的Action名
基于注解的拦截机(Interceptor)

基于注解的命名空间(Nameespace)
基于注解的XWork包
默认action以及默认的结果(比如:/products 将会尝试寻找com.example.actions.Products 或 com.example.actions.products.Index进行处理)

  struts2零配置详细可看这篇http://javeye.iteye.com/blog/358744

 

spring配置文件从外部加载properties文件

 

	<!-- 定义易受环境影响的变量 -->
	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
		<property name="ignoreResourceNotFound" value="true" />
		<property name="locations">
			<list>
				<!-- 标准配置 -->
				<value>classpath*:/application.properties</value>
				<!-- 本地开发环境配置 -->
				<value>classpath*:/application.local.properties</value>
				<!-- 服务器生产环境配置 -->
				<value>file:/var/mini-service/application.server.properties</value>
			</list>
		</property>
	</bean>

 

 

基于cxf集成spring开发webservice客户端技术 很简单:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:cxf="http://cxf.apache.org/core"
	xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
	default-lazy-init="true">

	<description>Apache CXF Web Service Client端配置</description>

	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />

	<jaxws:client id="userWebService" serviceClass="org.springside.examples.
miniservice.ws.UserWebService"
		address="http://localhost:8080/mini-service/ws/userservice" />
</beans> <!--这个是webservice客现类接口-->

 

   利用cxf本身API开发webservice 也很简单:

 

 

 

 

String address = BASE_URL + "/ws/userservice";

		JaxWsProxyFactoryBean proxyFactory = new JaxWsProxyFactoryBean();
		proxyFactory.setAddress(address);
		proxyFactory.setServiceClass(UserWebService.class);
            //UserWebService是一个接口
		UserWebService userWebServiceCreated = (UserWebService) proxyFactory.create();

		//(可选)重新设定endpoint address.
		((BindingProvider) userWebServiceCreated).getRequestContext()
		.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
				address);

 

 利用velocity解释动态sql。不再需要为拼sql头痛了。

 

/**
 * 使用Velocity生成内容的工具类.
 * 
 * @author calvin
 */
public class VelocityUtils {

	static {
		try {
			Velocity.init();
		} catch (Exception e) {
			throw new RuntimeException("Exception occurs while initialize the velociy.", e);
		}
	}

	/**
	 * 渲染内容.
	 * 
	 * @param template 模板内容.
	 * @param model 变量Map.
	 */
	public static String render(String template, Map<String, ?> model) {
		try {
			VelocityContext velocityContext = new VelocityContext(model);
			StringWriter result = new StringWriter();
			Velocity.evaluate(velocityContext, result, "", template);
			return result.toString();
		} catch (Exception e) {
			throw new RuntimeException("Parse template failed.", e);
		}
	}
}

   调用:

	/**
	 * 使用Velocity创建动态SQL.
	 */
	public List<User> searchUserByFreemarkerSqlTemplate(Map<String, ?> conditions) {
		String sql = VelocityUtils.render(searchUserSql, conditions);//searchUserSql由spring注入
		logger.info(sql);
		return jdbcTemplate.query(sql, userMapper, conditions);
	}

 

<bean id="userJdbcDao" class="org.springside.examples.showcase.common.dao.UserJdbcDao">
		<property name="searchUserSql">
			<value><![CDATA[
			SELECT id, name, login_name 
			FROM ss_user
			WHERE 1=1
			
			## Dynamic Content
			#if ($loginName)
			AND login_name=:loginName
			#end
			#if ($name)
			AND name=:name
			#end
			
			ORDER BY id
			]]></value>
		</property>
	</bean>

  jdbcTeamplate 使用Bean形式命名参数

 

 

 private static final String INSERT_USER = "insert into SS_USER(id, login_name, name) values(:id, :loginName, :name)";	

 

 

//使用BeanPropertySqlParameterSource将User的属性映射为命名参数.

	BeanPropertySqlParameterSource source = new BeanPropertySqlParameterSource(user);
		jdbcTemplate.update(INSERT_USER, source);

 

  webservice.利用mtom协义传传大文件

 

/**
 * 演示以MTOM附件协议传输Streaming DataHandler的二进制数据传输的方式. 
 * 
 * @author calvin
 */
@XmlType(name = "LargeImageResult", namespace = WsConstants.NS)
public class LargeImageResult extends WSResult {

	private static final long serialVersionUID = 8375875101365439245L;

	private DataHandler imageData;

	@XmlMimeType("application/octet-stream")
	public DataHandler getImageData() {
		return imageData;
	}

	public void setImageData(DataHandler imageData) {
		this.imageData = imageData;
	}
}

 

@WebService(serviceName = "LargeImageService", portName = "LargeImageServicePort", endpointInterface = "org.springside.examples.showcase.ws.server.LargeImageWebService", targetNamespace = WsConstants.NS)
public class LargeImageWebServiceImpl implements LargeImageWebService, ApplicationContextAware {

	private static Logger logger = LoggerFactory.getLogger(LargeImageWebServiceImpl.class);

	private ApplicationContext applicationContext;

	/**
	 * @see LargeImageWebService#getImage()
	 */
	public LargeImageResult getImage() {

		try {
			//采用applicationContext获取Web应用中的文件.
			File image = applicationContext.getResource("/img/logo.jpg").getFile();

			//采用activation的DataHandler实现Streaming传输.
			DataSource dataSource = new FileDataSource(image);
			DataHandler dataHandler = new DataHandler(dataSource);

			LargeImageResult result = new LargeImageResult();
			result.setImageData(dataHandler);
			return result;
		} catch (IOException e) {
			logger.error(e.getMessage(), e);
			return WSResult.buildResult(LargeImageResult.class, WSResult.IMAGE_ERROR, "Image reading error.");
		}

	}

	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		this.applicationContext = applicationContext;
	}
}

 

 

 springside很强大,这些主流的大派对,这是不就是我们平常所要找的答案吗?很多技术因为没用,快忘记了,暂时作一个小笔记先。未完待续。。

 

 

 

 

 

 

 

 

 

 

3
1
分享到:
评论

相关推荐

    springside-3.2.2源码

    1. SpringMVC:负责 Web 层的处理,通过 HandlerMapping 和 HandlerAdapter 实现请求映射,视图解析由 ViewResolver 负责。 2. Spring Data:简化数据访问,通过 JPA 或 Hibernate 提供 ORM 支持,Repository 接口...

    SpringSide4 参考手册

    SpringSide4参考手册是一份详尽的文档,涵盖了使用SpringSide4.0版本开发应用时可能会用到的各种技术组件和模块。SpringSide是一个开源的Java开发平台,它集成了Spring框架和大量实用的组件,以方便开发人员构建复杂...

    springside开发全面讲解

    《springside开发全面讲解》是一份旨在帮助开发者深入了解并掌握springside框架的详尽教程。springside是一款基于Spring框架的轻量级开发工具集,它为Java开发提供了简洁、高效的解决方案,尤其适合中大型项目的开发...

    Springside-core-4.1.0/Springside-core-4.1.0

    《SpringSide核心库4.1.0深度解析》 SpringSide是Java开发中的一款轻量级框架,它基于Spring框架,旨在简化企业级应用的开发流程。本文将深入探讨SpringSide-core-4.1.0的核心特性,以及其在实际项目中的应用。 一...

    springside3.0.zip

    《SpringSide 3.0:Java企业开发的高效框架指南》 SpringSide 3.0 是一个基于Spring框架的开源项目,旨在为Java开发者提供一套高效、简洁的开发规范和工具集。它不仅包含了Spring的核心模块,还整合了其他优秀的...

    springside

    《SpringSide:全面解析与应用》 SpringSide项目是一个基于Java的开源软件开发框架,它以Spring Framework为核心,旨在提供一套简洁、规范的项目构建和开发实践。在深入理解SpringSide之前,我们首先需要了解Spring...

    springSide3框架的笔记参照.pdf

    SpringSide3是一个基于Spring框架的开发工具,旨在简化Java企业级应用的开发流程。这个框架提供了项目生成器,使用Maven的archetype插件来创建符合特定规范的项目结构。SpringSide3.0使用Velocity语法的项目模板,...

    springside.jar

    它由springside-project组织维护,包含多个子模块,如springside-parent、springside-test、springside-extension等,提供了一整套的开发规范和最佳实践。通过引入springside.jar,开发者可以快速构建起符合现代开发...

    springside-core-4.2.2.GA(含关联的test.jar)

    pom.xml配置 ...mvn install:install-file -DgroupId=org.springside -DartifactId=springside-core -Dversion=4.2.2.GA -Dfile=./springside-core-4.2.2.GA.jar -Dpackaging=jar -DgeneratePom=true

    springside3.3.4 使用方法

    ### springside3.3.4使用方法与SSH整合详解 #### 一、Springside简介 Springside项目是基于Spring框架的一个应用架构示例,它提供了一套完整的开发模式来构建企业级Java Web应用程序。Springside 3.3.4版本作为一...

    有springside4.2.3-GA.jar 包

    《深入解析springside4.2.3-GA.jar:Java开发者的宝藏库》 在Java开发领域,SpringSide框架以其高效、灵活和强大的特性深受开发者喜爱。本文将围绕springside4.2.3-GA.jar这个核心组件,探讨其在Java应用中的重要...

    SpringSide文档.chm

    SpringSide文档.chm。

    SpringSide3.3.4安装部署

    SpringSide3.3.4 安装部署详解 SpringSide3.3.4 安装部署是指在计算机上安装和部署 SpringSide3.3.4 软件的过程。在这个过程中,我们需要使用 Maven 工具来生成项目模板,安装 mini-web 应用程序,并配置相应的...

    springside4(showcase)

    View是用户界面,通常由模板引擎如JSP或Thymeleaf生成。ViewResolver则负责根据逻辑视图名解析出实际视图。 在SpringSide 4的showcase中,开发者会学习到如何配置DispatcherServlet,定义URL映射,以及如何通过注解...

    springside框架

    《SpringSide框架详解:整合Spring、Hibernate与Struts2的高效解决方案》 SpringSide框架,作为一款基于Java的开源企业级应用开发框架,是开发者们为了简化开发流程、提高开发效率而精心设计的。它巧妙地融合了...

    springside的jar包

    springside是一个开源的Java开发工具集,它为Spring框架提供了额外的支持和便利,使得开发者在基于Spring构建项目时能够更加高效和规范。这个"springside4-4.1.0.GA"的jar包是Springside项目的4.1.0版本的发布,GA...

    springside3文档资料收录

    SpringSide3是Java开发领域的一个重要参考资料,它是由知名开发者Calvin创建并维护的项目,旨在为Java开发者提供一套完整的Spring框架学习与实践指南。SpringSide3不仅包含了Spring框架的核心概念,还涵盖了Spring在...

    springside3.3完整版

    《SpringSide 3.3 完整版:深入解析与实战指南》 SpringSide 是一个开源的Java项目,旨在提供一套简洁、规范的Spring应用开发模板,帮助开发者快速上手Spring框架。本版本,即“springside3.3”,是专为MyEclipse...

    springside-4.0.0.GA.zip

    《SpringSide 4.0.0.GA:JavaEE世界的春天之光》 SpringSide,一个以Spring Framework为核心,秉持Pragmatic编程理念的JavaEE应用参考实例,它旨在为开发者提供主流技术选型的示范,展示JavaEE世界中的最佳实践。这...

    springside3

    SpringSide 3 是由中国的Java社区开发的一个开源项目,它将Spring框架的最佳实践封装起来,为开发者提供了一种快速构建企业级应用的解决方案。该框架强调代码质量和开发效率,遵循Maven的模块化构建方式,采用面向...

Global site tag (gtag.js) - Google Analytics