Spring项目中执行Java脚本
问题:在已搭建好Spring环境的JavaWeb项目中,怎么运行一段Java代码,执行一些类似脚本的功能。
情况一:测试局部功能,不需要依赖Spring框架的。
方法:IDEA中新建一个类,编写主函数(快捷键psvm),把要测试的一小段代码写在这个主函数中,然后右键选择Run...Main(),即可独立运行本类。
public static void main(String[] args) {
System.out.println(UUID.randomUUID().toString());
}
情况二:运行的功能需要依赖Spring框架的,如需要调用Service层、Dao层的。比如统计数据库中的相关数据并输出日志、更新服务器资源等。
方法:跟方法一类似,只不过需要依赖Spring框架,要在主函数中手动引入Spring环境,才能调用现有的Service层、Dao层功能。网上找到的Java脚本引入Spring环境的方法如下。
public static void main(String[] args) {
GenericXmlApplicationContext context = new GenericXmlApplicationContext();
context.setValidating(false);
context.load("classpath*:dispatcher-servlet.xml"); // 上下文环境引入Spring的配置文件,注意文件名一致
context.refresh();
// 调用Service层执行之后的逻辑
}
情况三:同样是运行的功能需要依赖Spring框架的,如需要调用Service层、Dao层的。
思路:跟方法二的区别是不在新建的类中写主函数,而是采用标准的走接口的形式执行Java代码。即写一个接口方法,运行后端服务,调用时可以写一个网页上的按钮触发,或者是直接在浏览器输入url触发都可以。
写法:参考SSM架构的Java项目,在Controller、Service、ServiceImpl、Dao层都新建一个文件,采用Controller层调Service层接口,ServiceImpl层是Service实现类,ServiceImpl层调Dao层跟数据库交互。
接口入口Controller层:
@Controller
public class UserController { @Autowired
private IUserService iUserService; @RequestMapping(value = "test.do", method = RequestMethod.GET)
@ResponseBody
public void testFunction(String username){
iUserService.test(username);
} }
其他层根据自己需求写就行了,跟着SSM架构的分层与调用套路即可。
注意一个小问题是@RequestMapping注释中method可以不写,如果写为method = RequestMethod.POST则浏览器不能通过地址栏输入url来调用该接口,因为地址栏url用的是GET请求方法。如果仅为内部开发环境下运行脚本,根据自己需求怎么方便怎么来就好。
Spring项目中执行Java脚本的更多相关文章
- Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决
问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...
- java web项目(spring项目)中集成webservice ,实现对外开放接口
什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring ...
- redis中使用java脚本实现分布式锁
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/115.html?1455860390 edis被大量用在分布式的环境中,自 ...
- Loadrunner执行Java脚本
1. Eclipse中调试Java脚本,脚本调试通过后,打成jar包: 2. 新建lr脚本,选择Java vuser协议: 3. Run-time Settings中Classpath设置jar包,没 ...
- C#怎么在生成解决方案的过程中执行perl脚本(C#早期绑定)
转载 怎么在生成解决方案的过程中执行perl脚本 早期绑定在编译期间识别并检查方法.属性.函数,并在应用程序执行之前执行其他优化.在这个绑定中,编译器已经知道它是什么类型的对象以及它拥有的方法或属性. ...
- 在WebBrowser中执行javascript脚本的几种方法整理(execScript/InvokeScript/NavigateScript) 附完整源码
[实例简介] 涵盖了几种常用的 webBrowser执行javascript的方法,详见示例截图以及代码 [实例截图] [核心代码] execScript方式: 1 2 3 4 5 6 7 8 9 1 ...
- Java Web项目中缺少Java EE 6 Libraries怎么添加
Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...
- .net(C#)在Access数据库中执行sql脚本
自己写的一个工具类,主要是业务场景的需要. 主要有两个功能: ①执行包含sql语句的字符串 ②执行包含sql语句的文件 调用方式 /// <summary> /// 执行sql语句 /// ...
- SQL Server 中执行Shell脚本计算本地文件的内容大小
SQL Server 数据库中除了能执行基本的SQL语句外,也可以执行Shell脚本.默认安装后,SQL中的Shell脚本的功能是关闭的,需要手动打开, 执行以下脚本即可打开该功能. -- 允许配置高 ...
随机推荐
- [企业化NET]Window Server 2008 R2[2]-SVN 服务端 和 客户端 安装
1. 服务器基本安装即问题解决记录 √ 2. SVN环境搭建和客户端使用 2.1 服务端 和 客户端 安装 √ 2.2 项目建立与基本使用 √ 2.3 基本冲突解决, ...
- android 控件各种颜色的半透明效果配置
格式: android:background="#XXxxxxxx"(颜色可以写在color中) 说明:半透明颜色值不同于平时使用的颜色,半透明颜色值共8位,前2位是透明度,后6位 ...
- 实用的php购物车程序
实用的php教程购物车程序以前有用过一个感觉不错,不过看了这个感觉也很好,所以介绍给需要的朋友参考一下. <?php//调用实例require_once 'cart.class.php';ses ...
- Xilinx 常用模块汇总(verilog)【01】
作者:桂. 时间:2018-05-07 19:11:23 链接:http://www.cnblogs.com/xingshansi/p/9004492.html 前言 该文私用,不定期更新,主要汇总 ...
- [Leet Code]Path Sum
很简单一道题,搞错了N次,记录一下. public class Solution { private int currSum = 0; public boolean hasPathSum(TreeNo ...
- PostgreSQL PL/Python 和 PL/Postgres 函数互相调用
create or replace function hello(name text) returns text as $$ # str = name+',你吃饭了吗?'; # return 'hel ...
- Unity Shaders and Effects Cookbook (4-1)(4-2)静态立方体贴图的创建与使用
開始学习第4章 - 着色器的反射 看完了1.2节,来记录一下.反射主要是利用了 Cubemap 立方体贴图. 认识Cubemap 立方体贴图.就如同名字所说.在一个立方体上有6张图.就这样觉得吧. 假 ...
- html5中audio的详细使用
html5的audio功能上已经非常强大,回放,跳转,缓冲等以前只能用flash才能实现的功能,html5的audio都能轻松搞定 最近的一个项目使用到了这个功能,把我使用的情况写下来,供大家参考, ...
- angular-1.3 之ng-model-options指令
ng-model-options是angular-1.3新出的一个指令,这篇文章就来介绍这个指令的用法. ng-model-options允许我们控制ng-model何时进行同步. 比如:1.当某个确 ...
- django rest_framework入门
1.rest_framework的作用 1)可以对orm和非orm资源序列化 2)支持restful风格编程(POST,PUT,PATCH) 3)使用类视图编写API的view,而不是函数视图,类视图 ...