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请求方法。如果仅为内部开发环境下运行脚本,根据自己需求怎么方便怎么来就好。
相关文章
- java并发面试题(一)基础
- 【Spring Boot】Spring Boot之整合Sharding-JDBC(java config方式)实现分库分表(水平拆分)
- java中如何对汉字进行排序?
- spring boot: java @interface注解
- Java实现 LeetCode 786 第 K 个最小的素数分数(大小堆)
- java实现平面点最小距离
- Java实现 蓝桥杯VIP 算法提高 11-2删除重复元素
- Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题
- 改善JAVA代码01:考虑静态工厂方法代替构造器
- Spring异常解决 java.lang.NullPointerException,配置spring管理hibernate时出错
- java 11 Java Flight Recorder
- 【JAVA】毕向东Java基础视频教程-笔记
- 面向切面编程AOP[三](java AnnotationAwareAspectJAutoProxyCreator实现了什么功能)
- Java动态代理(Spring Aop原理)
- 使用heroku java buildpack 发布spring boot jar到deis云平台
- 【JAVA】Java循环语句中的continue跳转进入下一次循环是否判断循环条件
- [Java Spring] Error Handling with @ExceptionHandler
- [Java Spring JWT] JWT example
- [Linux] Install java and add JAVA_HOME, PATH
- 【收藏】Spring Boot项目中使用最新版HBase Java API操作HBase 2.x详解
- ABAP和Java里的单例模式攻击
- Java java.util.concurrent.Future的一个例子
- 不使用spring的情况下用java原生代码操作mongodb数据库的两种方式
- 【Java】java 环境配置(详细教程)
- Spring Boot 之spring.factories
- 详解jvm之java类加载机制和类加载器(ClassLoader) 深入理解Java类加载器(ClassLoader) 如何自定义类加载器 深入说明双亲委派 双亲委派模型的破坏者-线程上下文类加载器
- Java未赋值变量的默认初始值
- java ee wildfly spring 在线程池的线程中注入
- 005-spring-data-elasticsearch 3.0.0.0使用【三】-spring-data之Spring数据扩展
- uploadify在火狐下上传不了的解决方式,java版(Spring+SpringMVC+MyBatis)具体解决方式
- 从应届生到大厂Java开发工程师,他用了不到3个月!
- Java查找出现的单词
- 【java】Java 中泛型的实现原理
- 【java】Spring Boot --spring boot项目整合xxl-job
- JAVA开发讲义(二)-Java程序设计之数据之谜三