<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
import java.util.ArrayList; import java.util.Date; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.boco.jobmonitor.App; import com.boco.jobmonitor.model.SjmcJobitem; import com.boco.jobmonitor.service.SjmcJobitemService; import com.boco.jobmonitor.service.impl.SjmcJobitemServiceImpl; import com.boco.jobmonitor.vo.ClusterAppVo; import com.boco.jobmonitor.vo.ClusterNodeVo; @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = { App.class, JobitemServiceImpl.class }, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)//配置啓動類 public class AppTest { @Autowired private JobitemService sJobitemService; @Test public void testInsertJob() { Jobitem jobitem = new Jobitem("application_1548381669007_0055", "/home/dx/tommyduan/submit_x1_x2.sh", "RUNING", "", "1", "admin", new Date()); Integer result = sJobitemService.insert(jobitem); System.out.println(result); } }
注意:html
在@SpringBootTest(classes = { App.class, JobitemServiceImpl.class }中可選包含JobitemServiceImpl(必定不能忘記註冊@Service到該類,不然會拋出異常,說一些依賴未能加載)。java
App.class是springboot的入口類:web
import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.scheduling.annotation.EnableScheduling; import tk.mybatis.spring.annotation.MapperScan; /** * SpringBoot入口函數<br> * 啓動腳本:java -jar -Dspring.profiles.active=prod -Dserver.port=8080 * 。。。-web-1.0.0-SNAPSHOT.jar * */ @SpringBootApplication(scanBasePackages = {}) @MapperScan("com.dx.jobmonitor.mapper") @EnableScheduling public class App { private static final Logger logger = LoggerFactory.getLogger(App.class); public static void main(String[] args) { logger.info("App start..."); SpringApplication.run(App.class, args); } }
運行日誌以下:spring
log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.2.RELEASE) 2019-02-18 22:38:59.277 INFO 21268 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! Mon Feb 18 22:39:01 CST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 2019-02-18 22:39:01.921 INFO 21268 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited 2019-02-18 22:39:01.927 DEBUG 21268 --- [ main] c.b.j.m.PermissionMapper.selectAllPerms : ==> Preparing: SELECT id, permission_id, name, description, url, perms, parent_id, type, order_num, icon, status, create_time, update_time FROM permission WHERE status=? ORDER BY order_num 2019-02-18 22:39:02.089 DEBUG 21268 --- [ main] c.b.j.m.PermissionMapper.selectAllPerms : ==> Parameters: 1(Integer) 2019-02-18 22:39:02.152 DEBUG 21268 --- [ main] c.b.j.m.PermissionMapper.selectAllPerms : <== Total: 41 2019-02-18 22:39:02.624 INFO 21268 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2019-02-18 22:39:02.624 INFO 21268 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.31 2019-02-18 22:39:02.635 INFO 21268 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : Loaded APR based Apache Tomcat Native library [1.2.19] using APR version [1.6.5]. 2019-02-18 22:39:02.636 INFO 21268 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 2019-02-18 22:39:02.636 INFO 21268 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 2019-02-18 22:39:02.639 INFO 21268 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : OpenSSL successfully initialized [OpenSSL 1.1.1a 20 Nov 2018] 2019-02-18 22:39:02.814 INFO 21268 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2019-02-18 22:39:04.705 WARN 21268 --- [ main] org.thymeleaf.templatemode.TemplateMode : [THYMELEAF][main] Template Mode 'LEGACYHTML5' is deprecated. Using Template Mode 'HTML' instead. 2019-02-18 22:39:06.152 INFO 21268 --- [ main] c.b.jobmonitor.aspect.RedisCacheAspect : 清空緩存 - scom_dx_jobmonitor_service_impl_JobitemServiceImpl* 2019-02-18 22:39:06.255 INFO 21268 --- [ main] io.lettuce.core.EpollProvider : Starting without optional epoll library 2019-02-18 22:39:06.256 INFO 21268 --- [ main] io.lettuce.core.KqueueProvider : Starting without optional kqueue library 2019-02-18 22:39:06.459 DEBUG 21268 --- [ main] c.b.j.mapper.JobitemMapper.insert : ==> Preparing: INSERT INTO jobitem ( id,appid,submitfilepath,state,monitortype,createuserid,createusername,createtime ) VALUES( ?,?,?,?,?,?,?,? ) 2019-02-18 22:39:06.508 DEBUG 21268 --- [ main] c.b.j.mapper.JobitemMapper.insert : ==> Parameters: null, application_1548381669007_0054(String), /home/dx/tommyduan/submit_x1_x2.sh(String), RUNING(String), (String), 1(String), admin(String), 2019-02-18 22:39:06.137(Timestamp) 2019-02-18 22:39:06.540 DEBUG 21268 --- [ main] c.b.j.mapper.JobitemMapper.insert : <== Updates: 1 2019-02-18 22:39:06.543 DEBUG 21268 --- [ main] c.b.j.m.S.insert!selectKey : ==> Executing: SELECT LAST_INSERT_ID() 2019-02-18 22:39:06.546 DEBUG 21268 --- [ main] c.b.j.m.S.insert!selectKey : <== Total: 1 1 2019-02-18 22:39:07.705 INFO 21268 --- [ Thread-3] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closed