问题:在已搭建好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. 通过管理员命令进入D盘

    第一步:Windows键+R打开运行 输入cmd敲回车,打开命令提示符程序.或者点击开始,再点击运行,即可打开命令提示符程序:或者在开始菜单的搜索框中输入CMD:点击运行. 第二步:输入CMD,回车. ...

  2. URL中#号的含义

    一.#的涵义 #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如, http://www.example.com/index.html#print 就代表网页index.html的prin ...

  3. 订单状态 Mark

    ) { ) { ) { ) { ) { ) { ) { ) { ) { ) { ) { ) { ) { ) { ))) { ))) { ))) { ))) { )); } else { Assert. ...

  4. django session入门详解

    概括性的讲: 1.django默认是打开对session的支持的 2.默认情况下session相关的数据会保存在数据库中.浏览器端只保存了session id session 的科普: 1.动态网站中 ...

  5. Java数据结构和算法(六):前缀、中缀、后缀表达式

    前面我们介绍了三种数据结构,第一种数组主要用作数据存储,但是后面的两种栈和队列我们说主要作为程序功能实现的辅助工具,其中在介绍栈时我们知道栈可以用来做单词逆序,匹配关键字符等等,那它还有别的什么功能吗 ...

  6. scala中json与对象的转换

    遇到的问题 因为要把spark从es读出来的json数据转换为对象,开始想用case class定义类型,通过fastjson做转换.如下 case class Book (author: Strin ...

  7. CentOS 7 安装中文环境

    centos升级到7后,系统设置好多和6有了很大的区别,中文支持就有很大的变化. 1.安装中文语言包. yum install kde-l10n-Chinese 2.安装(已经安装的要重新安装)gli ...

  8. 深入理解Linux内核-信号

    信号:1.最初被引入作为用户态进程间通信2.内核也使用信号通知进程系统所发生的事件3.信号很短,发送给进程的唯一信息通常是一个数.4.名称通常以SIG为前缀5.信号时可消费资源,每个信号只能被传递一次 ...

  9. gf框架之grpool - 高性能的goroutine池

    Go语言中的goroutine虽然相对于系统线程来说比较轻量级,但是在高并发量下的goroutine频繁创建和销毁对于性能损耗以及GC来说压力也不小.充分将goroutine复用,减少goroutin ...

  10. rpmverify命令用来验证已安装的rpm软件包的正确性

    -Va:验证所有软件包: 来自: http://man.linuxde.net/rpmverify -Va:验证所有软件包: [root@DB ~]# rpmverify -Va ....L.... ...