问题:在已搭建好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脚本的更多相关文章

  1. Mac笔记本中是用Idea开发工具在Java项目中调用python脚本遇到的环境变量问题解决

    问题描述: mac笔记本本身会自带几个python版本,比如python2.7版本,我没有改动mac默认的python版本,只是安装了python3.7版本. 使用Pycharm开发Python项目没 ...

  2. java web项目(spring项目)中集成webservice ,实现对外开放接口

    什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring ...

  3. redis中使用java脚本实现分布式锁

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/115.html?1455860390 edis被大量用在分布式的环境中,自 ...

  4. Loadrunner执行Java脚本

    1. Eclipse中调试Java脚本,脚本调试通过后,打成jar包: 2. 新建lr脚本,选择Java vuser协议: 3. Run-time Settings中Classpath设置jar包,没 ...

  5. C#怎么在生成解决方案的过程中执行perl脚本(C#早期绑定)

    转载 怎么在生成解决方案的过程中执行perl脚本 早期绑定在编译期间识别并检查方法.属性.函数,并在应用程序执行之前执行其他优化.在这个绑定中,编译器已经知道它是什么类型的对象以及它拥有的方法或属性. ...

  6. 在WebBrowser中执行javascript脚本的几种方法整理(execScript/InvokeScript/NavigateScript) 附完整源码

    [实例简介] 涵盖了几种常用的 webBrowser执行javascript的方法,详见示例截图以及代码 [实例截图] [核心代码] execScript方式: 1 2 3 4 5 6 7 8 9 1 ...

  7. Java Web项目中缺少Java EE 6 Libraries怎么添加

    Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...

  8. .net(C#)在Access数据库中执行sql脚本

    自己写的一个工具类,主要是业务场景的需要. 主要有两个功能: ①执行包含sql语句的字符串 ②执行包含sql语句的文件 调用方式 /// <summary> /// 执行sql语句 /// ...

  9. SQL Server 中执行Shell脚本计算本地文件的内容大小

    SQL Server 数据库中除了能执行基本的SQL语句外,也可以执行Shell脚本.默认安装后,SQL中的Shell脚本的功能是关闭的,需要手动打开, 执行以下脚本即可打开该功能. -- 允许配置高 ...

随机推荐

  1. jquery ajax context

    function yflib_roomList(tpl) { var target = $(".roomList > li"); var _this = null; $(&q ...

  2. [aaronyang] nodejs学习-mongodb[1]

    1.资源提供与安装(ayjs.net) 学习说明:nodejs还是在非windows环境下操作好,所以一切还是 当前时间:2014年12月06日aaronyang 官网地址:www.mongodb.o ...

  3. 再说Android RecyclerView局部刷新那个坑

      RecyclerView局部刷新大家都遇到过,有时候还说会遇见图片闪烁的问题. 优化之前的效果: 优化之后的效果: 如果想单独更新一个item,我们通常会这样做,代码如下: mLRecyclerV ...

  4. Arduino智能小车--仅仅是随便一搞

    在某宝宝买的智能小车,挺精致的,开心的连接上打印机的线,结果port都没有反应, 查了一下发现是少了驱动,博主用的mac os10.12.3 CH34x_Install_V1.4.pkg 安装好之后我 ...

  5. linux 调用shell脚本传参

    例子: boolean execResult = true;        BufferedReader br = null;        try        {            //lin ...

  6. eclipse jdk版本设置

    1 Java Build Path(项目的编写环境配置): 在项目上单击右键,properties -> Java Build Path -> Libraries,选择JRE System ...

  7. PHP百分号转小数,php 小数转换百分数函数

    PHP百分号转小数: <?php $a = "20.544545%"; echo (float)$a/100; ?> php 小数转换百分数函数: function x ...

  8. Atitit 切入一个领域的方法总结 attilax这里,机器学习为例子

    Atitit 切入一个领域的方法总结 attilax这里,机器学习为例子 1.1. 何为机器学习?1 1.2. 两类机器学习算法 :监督式学习(Supervised Learning)和非监督式学习( ...

  9. Android性能优化系列之apk瘦身

    Android性能优化系列之布局优化 Android性能优化系列之内存优化 为什么APK要瘦身.APK越大,在下载安装过程中.他们耗费的流量会越多,安装等待时间也会越长:对于产品本身,意味着下载转化率 ...

  10. AWS产品目录

    计算 Amazon EC2:弹性虚拟机 AWS Batch:批处理计算 Amazon ECR:Docker容器管理 Amazon ECS:高度可扩展的快速容器管理服务 Amazon EKS:在AWS上 ...