SSH脚手架写法的一个思路及实例

本实例利用 String.format 的方法 实现 变量替换 

 String str=null;
    str=String.format("Hi, %s", "林计钦"); // 格式化字符串
    System.out.println(str); // 输出字符串变量str的内容

或者使用MessageFormat也可以

private String createMainBodyForBM(String modelName, String modelUrl) {
		String mainText = "<html><head><meta charset=\"utf-8\"></head><body><h2>有人上传了模型,需要转换,模型名称:{0}"
				+ "</h2><br>在文件服务器上真实路径:{1}</body></html>";
		return MessageFormat.format(mainText, modelName, modelUrl);
	}




包含读取样例接口(或其实现类),替换里面 %s 修改为需要的内容 然后写入相应目录对应的文件

interface 目录放置 程序生成的接口 impl文件夹 录放置 程序生成的接口impl文件

程序目录  本实例实现service 部分的一个简单示例 参考此方法可以实现dao 




样例接口 PermissionService


package com.bimatrix.revit.nservice                                           
 public interface %s {

}



样例接口实现类  PermissionServiceImpl

package com.bimatrix.revit.nservice.impl;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.bimatrix.revit.nservice.%s;

@Transactional
@Service
public class %sImpl implements %s{

}

主程序 ServuceJiaoShouJia

package test.JiaoShouJia;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/*
 * author : flyer
 * 2016.8.26
 */
public class ServuceJiaoShouJia {
	
	//产生接口文件
	String createInterfaceFileByName(String interfaceName) {
		// File f = new File(this.getClass().getResource("/").getPath());
		// System.out.println(f);
		// 获得当前文件ServuceJiaoShouJia.java的具体路径
		String fileContent = getJavaFile2String("PermissionService.java");
		//获得 传入文件的参数 
		fileContent=String.format(fileContent, interfaceName);
		//产生一个文件 url 待生成的文件名字
		String url = getNowFileUrl()+"\\interface\\"+interfaceName+".java";
		createFile(fileContent ,url );
		return fileContent;
	}
	
	//产生接口实现文件
	String createServiceImplFileByName(String implFileName) {
		// 获得当前文件ServuceJiaoShouJia.java的具体路径
		String fileContent = getJavaFile2String("PermissionServiceImpl.java");
		//获得 传入文件的参数 
		fileContent=String.format(fileContent, implFileName , implFileName ,implFileName);
		//产生一个文件 url 待生成的文件名字
		String url = getNowFileUrl()+"\\impl\\"+implFileName+"Impl.java";
		createFile(fileContent ,url );
		return fileContent;
	}
	
	
	/*
	 * content 文件内容
	 * fileUrl 创建的文件路径
	 */
	void createFile(String content ,String fileUrl){
	    try { 
	        FileOutputStream fos = new FileOutputStream(fileUrl); 
	        OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); 
	        osw.write(content); 
	        osw.flush(); 
	    } catch (Exception e) { 
	        e.printStackTrace(); 
	    }
		
	}

	//获得当前路径下java 文件内容 PermissionService.java
	private String getJavaFile2String(String fileName) {
		String result = "";
		try {
			String url = getNowFileUrl();
			url = url + "\\"+fileName ;
			File file = new File(url);
			System.out.println(file);
			String encoding = "UTF-8";
			if (file.isFile() && file.exists()) { // 判断文件是否存在
				InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式
				BufferedReader bufferedReader = new BufferedReader(read);
				String lineTxt = null;
				while ((lineTxt = bufferedReader.readLine()) != null) {
					result += lineTxt +"\r\n";
				}
				read.close();
			} else {
				System.out.println("找不到指定的文件");
			}
		} catch (Exception e) {
			System.out.println("读取文件内容出错");
			e.printStackTrace();
		}
		return result ;
	}
	
	//获得当前java文件 实际路径
	private String getNowFileUrl() {
		String nowfileUrl = this.getClass().getResource("").getPath();
		nowfileUrl = nowfileUrl.replaceFirst("bin", "src");//bin 换到src路径 java文件下面
		return nowfileUrl ;
	}


	public static void main(String[] args) {
//		System.out.printf("100的一半是:%s 结果  %s", "参数1","参数2");
		ServuceJiaoShouJia t = new ServuceJiaoShouJia();
		//单个创建
//		t.createInterfaceFileByName("CompanyService");
//		t.createServiceImplFileByName("CompanyService");
		//实现多个  数组是一些实体类名字
		String[] serviceNames={"Company","Element","ElementProperty",
				"HistoryRecord","Model","Project","Record","RecordSet","SwitchRecord","System"} ;
		for(String name :serviceNames){
			t.createInterfaceFileByName(name+"Service");
			t.createServiceImplFileByName(name+"Service");
		}
		
	}

}

只是个简单的实现,比较实用 可以减少很多的工作量


 




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值