【Activiti学习之八】Spring整合Activiti
环境
JDK 1.8
MySQL 5.6
Tomcat 7
idea
activiti 5.22
activiti-explorer是官方提供的一个演示项目,可以使用页面管理Activiti流程。activiti-explorer是以war包的形式存的。这里整合Spring+Activiti Modeler。
一、资源文件准备
1、下载activiti-5.22.0.rar
官网下载比较慢,可以从这里下载:https://pan.baidu.com/s/1XVTammPbIrbzU1MK7TBFOA
2、解压activiti-5.22.0.rar
进入wars目录,解压activiti-explorer.war demo
我们需要以下文件:
(1)diagram-viewer、editor-app、modeler.html
(2)stencilset.json(原版的title、description描述都是英文,可以改成中文:传送门)
二、搭建maven web工程
这里搭建传统应用:Spring + SpringMVC + Mybatis + Activiti
1、pom.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <groupId>com.wjy</groupId> 6 <artifactId>SpringActiviti</artifactId> 7 <version>1.0-SNAPSHOT</version> 8 <packaging>war</packaging> 9 <name>SpringActiviti</name> 10 <url>http://www.wjy.com</url> 11 12 <properties> 13 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 14 <maven.compiler.source>1.7</maven.compiler.source> 15 <maven.compiler.target>1.7</maven.compiler.target> 16 <junit.version>4.10</junit.version> 17 <spring.version>4.1.3.RELEASE</spring.version> 18 <activiti.version>5.22.0</activiti.version> 19 <jackson.version>[2.8.11.1,)</jackson.version> 20 <activiti.version>5.22.0</activiti.version> 21 <mysql.version>5.1.38</mysql.version> 22 <mybatis.version>3.4.1</mybatis.version> 23 <batik.version>1.7</batik.version> 24 <xml-apis.version>1.3.04</xml-apis.version> 25 </properties> 26 27 <dependencies> 28 <!-- junit start --> 29 <dependency> 30 <groupId>junit</groupId> 31 <artifactId>junit</artifactId> 32 <version>${junit.version}</version> 33 <scope>test</scope> 34 </dependency> 35 <!-- junit end --> 36 37 <!-- spring start --> 38 <!--Spring框架核心库 --> 39 <dependency> 40 <groupId>org.springframework</groupId> 41 <artifactId>spring-context</artifactId> 42 <version>${spring.version}</version> 43 </dependency> 44 <!-- Spring MVC --> 45 <dependency> 46 <groupId>org.springframework</groupId> 47 <artifactId>spring-webmvc</artifactId> 48 <version>${spring.version}</version> 49 </dependency> 50 <!-- spring end --> 51 52 <!--jackson start--> 53 <dependency> 54 <groupId>com.fasterxml.jackson.core</groupId> 55 <artifactId>jackson-databind</artifactId> 56 <version>${jackson.version}</version> 57 </dependency> 58 59 <dependency> 60 <groupId>com.fasterxml.jackson.core</groupId> 61 <artifactId>jackson-core</artifactId> 62 <version>${jackson.version}</version> 63 </dependency> 64 65 <dependency> 66 <groupId>com.fasterxml.jackson.core</groupId> 67 <artifactId>jackson-annotations</artifactId> 68 <version>${jackson.version}</version> 69 </dependency> 70 <!--jackson end--> 71 72 <!-- myBatis start --> 73 <!--Spring java数据库访问包,在本例中主要用于提供数据源 --> 74 <dependency> 75 <groupId>org.springframework</groupId> 76 <artifactId>spring-jdbc</artifactId> 77 <version>${spring.version}</version> 78 </dependency> 79 <!--mysql数据库驱动 --> 80 <dependency> 81 <groupId>mysql</groupId> 82 <artifactId>mysql-connector-java</artifactId> 83 <version>${mysql.version}</version> 84 </dependency> 85 <!-- mybatis ORM框架 --> 86 <dependency> 87 <groupId>org.mybatis</groupId> 88 <artifactId>mybatis</artifactId> 89 <version>${mybatis.version}</version> 90 </dependency> 91 <!--mybatis-spring适配器 --> 92 <dependency> 93 <groupId>org.mybatis</groupId> 94 <artifactId>mybatis-spring</artifactId> 95 <version>1.3.0</version> 96 </dependency> 97 <!--log4j日志包 --> 98 <dependency> 99 <groupId>org.apache.logging.log4j</groupId> 100 <artifactId>log4j-core</artifactId> 101 <version>2.6.1</version> 102 </dependency> 103 <!-- myBatis end --> 104 105 <!-- activiti start --> 106 <dependency> 107 <groupId>org.activiti</groupId> 108 <artifactId>activiti-engine</artifactId> 109 <version>${activiti.version}</version> 110 </dependency> 111 112 <dependency> 113 <groupId>org.activiti</groupId> 114 <artifactId>activiti-spring</artifactId> 115 <version>${activiti.version}</version> 116 </dependency> 117 <dependency> 118 <groupId>org.activiti</groupId> 119 <artifactId>activiti-bpmn-model</artifactId> 120 <version>${activiti.version}</version> 121 </dependency> 122 <dependency> 123 <groupId>org.activiti</groupId> 124 <artifactId>activiti-bpmn-layout</artifactId> 125 <version>${activiti.version}</version> 126 </dependency> 127 <dependency> 128 <groupId>org.activiti</groupId> 129 <artifactId>activiti-common-rest</artifactId> 130 <version>${activiti.version}</version> 131 </dependency> 132 <dependency> 133 <groupId>org.activiti</groupId> 134 <artifactId>activiti-crystalball</artifactId> 135 <version>${activiti.version}</version> 136 </dependency> 137 <dependency> 138 <groupId>org.activiti</groupId> 139 <artifactId>activiti-explorer</artifactId> 140 <version>${activiti.version}</version> 141 </dependency> 142 <dependency> 143 <groupId>org.activiti</groupId> 144 <artifactId>activiti-diagram-rest</artifactId> 145 <version>${activiti.version}</version> 146 </dependency> 147 <dependency> 148 <groupId>org.activiti</groupId> 149 <artifactId>activiti-json-converter</artifactId> 150 <version>${activiti.version}</version> 151 <exclusions> 152 <exclusion> 153 <artifactId>commons-collections</artifactId> 154 <groupId>commons-collections</groupId> 155 </exclusion> 156 </exclusions> 157 </dependency> 158 <dependency> 159 <groupId>org.activiti</groupId> 160 <artifactId>activiti-modeler</artifactId> 161 <version>${activiti.version}</version> 162 </dependency> 163 <dependency> 164 <groupId>org.activiti</groupId> 165 <artifactId>activiti-simple-workflow</artifactId> 166 <version>${activiti.version}</version> 167 </dependency> 168 <!-- servlet --> 169 <dependency> 170 <groupId>org.apache.geronimo.specs</groupId> 171 <artifactId>geronimo-servlet_3.0_spec</artifactId> 172 <version>1.0</version> 173 <scope>provided</scope> 174 </dependency> 175 <dependency> 176 <groupId>javax</groupId> 177 <artifactId>javaee-api</artifactId> 178 <version>7.0</version> 179 <scope>provided</scope> 180 </dependency> 181 <!-- Batik的包主要是用来解析html中的svg的内容 --> 182 <dependency> 183 <groupId>org.apache.xmlgraphics</groupId> 184 <artifactId>batik-transcoder</artifactId> 185 <version>${batik.version}</version> 186 </dependency> 187 <dependency> 188 <groupId>org.apache.xmlgraphics</groupId> 189 <artifactId>batik-dom</artifactId> 190 <version>${batik.version}</version> 191 </dependency> 192 <dependency> 193 <groupId>org.apache.xmlgraphics</groupId> 194 <artifactId>batik-bridge</artifactId> 195 <version>${batik.version}</version> 196 </dependency> 197 <dependency> 198 <groupId>org.apache.xmlgraphics</groupId> 199 <artifactId>batik-css</artifactId> 200 <version>${batik.version}</version> 201 </dependency> 202 <dependency> 203 <groupId>org.apache.xmlgraphics</groupId> 204 <artifactId>batik-anim</artifactId> 205 <version>${batik.version}</version> 206 </dependency> 207 <dependency> 208 <groupId>org.apache.xmlgraphics</groupId> 209 <artifactId>batik-codec</artifactId> 210 <version>${batik.version}</version> 211 </dependency> 212 <dependency> 213 <groupId>org.apache.xmlgraphics</groupId> 214 <artifactId>batik-ext</artifactId> 215 <version>${batik.version}</version> 216 </dependency> 217 <dependency> 218 <groupId>org.apache.xmlgraphics</groupId> 219 <artifactId>batik-gvt</artifactId> 220 <version>${batik.version}</version> 221 </dependency> 222 <dependency> 223 <groupId>org.apache.xmlgraphics</groupId> 224 <artifactId>batik-script</artifactId> 225 <version>${batik.version}</version> 226 </dependency> 227 <dependency> 228 <groupId>org.apache.xmlgraphics</groupId> 229 <artifactId>batik-parser</artifactId> 230 <version>${batik.version}</version> 231 </dependency> 232 <dependency> 233 <groupId>org.apache.xmlgraphics</groupId> 234 <artifactId>batik-svg-dom</artifactId> 235 <version>${batik.version}</version> 236 </dependency> 237 <dependency> 238 <groupId>org.apache.xmlgraphics</groupId> 239 <artifactId>batik-svggen</artifactId> 240 <version>${batik.version}</version> 241 </dependency> 242 <dependency> 243 <groupId>org.apache.xmlgraphics</groupId> 244 <artifactId>batik-util</artifactId> 245 <version>${batik.version}</version> 246 </dependency> 247 <dependency> 248 <groupId>org.apache.xmlgraphics</groupId> 249 <artifactId>batik-xml</artifactId> 250 <version>${batik.version}</version> 251 </dependency> 252 <dependency> 253 <groupId>org.apache.xmlgraphics</groupId> 254 <artifactId>batik-js</artifactId> 255 <version>${batik.version}</version> 256 </dependency> 257 <dependency> 258 <groupId>org.apache.xmlgraphics</groupId> 259 <artifactId>batik-awt-util</artifactId> 260 <version>${batik.version}</version> 261 </dependency> 262 <dependency> 263 <groupId>org.apache.xmlgraphics</groupId> 264 <artifactId>xmlgraphics-commons</artifactId> 265 <version>1.2</version> 266 </dependency> 267 <dependency> 268 <groupId>xml-apis</groupId> 269 <artifactId>xml-apis-ext</artifactId> 270 <version>${xml-apis.version}</version> 271 </dependency> 272 <dependency> 273 <groupId>xml-apis</groupId> 274 <artifactId>xml-apis</artifactId> 275 <version>${xml-apis.version}</version> 276 </dependency> 277 <!-- 文件上传依赖 --> 278 <dependency> 279 <groupId>commons-io</groupId> 280 <artifactId>commons-io</artifactId> 281 <version>2.4</version> 282 </dependency> 283 <dependency> 284 <groupId>commons-collections</groupId> 285 <artifactId>commons-collections</artifactId> 286 <version>3.2.1</version> 287 </dependency> 288 <dependency> 289 <groupId>commons-beanutils</groupId> 290 <artifactId>commons-beanutils</artifactId> 291 <version>1.8.0</version> 292 </dependency> 293 <dependency> 294 <groupId>commons-lang</groupId> 295 <artifactId>commons-lang</artifactId> 296 <version>2.6</version> 297 </dependency> 298 <!-- activiti end --> 299 300 <!-- JSON解析 start --> 301 <!-- Gson 将bean转换json确保数据的正确 --> 302 <dependency> 303 <groupId>com.google.code.gson</groupId> 304 <artifactId>gson</artifactId> 305 <version>2.8.0</version> 306 </dependency> 307 <!-- FastJson将Json转换Bean --> 308 <dependency> 309 <groupId>com.alibaba</groupId> 310 <artifactId>fastjson</artifactId> 311 <version>1.2.46</version> 312 </dependency> 313 <!-- JSON解析 end --> 314 315 </dependencies> 316 317 <build> 318 <finalName>SpringActiviti</finalName> 319 <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> 320 <plugins> 321 <plugin> 322 <artifactId>maven-clean-plugin</artifactId> 323 <version>3.1.0</version> 324 </plugin> 325 <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> 326 <plugin> 327 <artifactId>maven-resources-plugin</artifactId> 328 <version>3.0.2</version> 329 </plugin> 330 <plugin> 331 <artifactId>maven-compiler-plugin</artifactId> 332 <version>3.8.0</version> 333 </plugin> 334 <plugin> 335 <artifactId>maven-surefire-plugin</artifactId> 336 <version>2.22.1</version> 337 </plugin> 338 <plugin> 339 <artifactId>maven-war-plugin</artifactId> 340 <version>3.2.2</version> 341 </plugin> 342 <plugin> 343 <artifactId>maven-install-plugin</artifactId> 344 <version>2.5.2</version> 345 </plugin> 346 <plugin> 347 <artifactId>maven-deploy-plugin</artifactId> 348 <version>2.8.2</version> 349 </plugin> 350 </plugins> 351 </pluginManagement> 352 </build> 353 </project>
2、web.xml
1 <!DOCTYPE web-app PUBLIC 2 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 3 "http://java.sun.com/dtd/web-app_2_3.dtd" > 4 5 <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 6 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 7 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 8 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 9 <display-name>SpringActiviti</display-name> 10 11 <!-- springMVC start --> 12 <!-- 当监听器在启动Spring容器时会自动查找Web-INF/lib目录下名为applicationContext.xml配置文件, 13 当然也可以设置参数指定配置文件的具体位置,特别是有多个配置文件的情况,指定配置文件的具体位置如下: --> 14 <context-param> 15 <param-name>contextConfigLocation</param-name> 16 <param-value>classpath:spring/springContext.xml, 17 classpath:spring/spring-*.xml</param-value> 18 </context-param> 19 <servlet> 20 <servlet-name>SpringMVC</servlet-name> 21 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 22 <init-param> 23 <param-name>contextConfigLocation</param-name> 24 <param-value>classpath:spring/springContext.xml</param-value> 25 </init-param> 26 <load-on-startup>1</load-on-startup> 27 </servlet> 28 <servlet-mapping> 29 <servlet-name>SpringMVC</servlet-name> 30 <url-pattern>/</url-pattern> 31 </servlet-mapping> 32 <servlet-mapping> 33 <servlet-name>SpringMVC</servlet-name> 34 <url-pattern>/*</url-pattern> 35 </servlet-mapping> 36 <session-config> 37 <session-timeout>30</session-timeout> 38 </session-config> 39 <listener> 40 <!-- Spring容器启动监听器 --> 41 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 42 </listener> 43 44 <!-- 配置编码方式过滤器,注意一点:要配置在所有过滤器的前面 --> 45 <filter> 46 <filter-name>CharacterEncodingFilter</filter-name> 47 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 48 <init-param> 49 <param-name>encoding</param-name> 50 <param-value>utf-8</param-value> 51 </init-param> 52 </filter> 53 <filter-mapping> 54 <filter-name>CharacterEncodingFilter</filter-name> 55 <url-pattern>/*</url-pattern> 56 </filter-mapping> 57 58 <!-- 配置编码过滤 --> 59 <filter> 60 <filter-name>EncoidingFilter</filter-name> 61 <filter-class>com.wjy.util.EncoidingFilter</filter-class> 62 63 <init-param> 64 <param-name>Encoding</param-name> 65 <param-value>utf-8</param-value> 66 </init-param> 67 </filter> 68 69 <filter-mapping> 70 <filter-name>EncoidingFilter</filter-name> 71 <url-pattern>/*</url-pattern> 72 </filter-mapping> 73 <!-- springMVC end --> 74 </web-app>
3、springContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"> <!-- 自动扫描包,实现支持注解的IOC --> <context:component-scan base-package="com.wjy"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <!-- 支持mvc注解驱动 --> <mvc:annotation-driven /> <!-- 静态资源文件,不会被Spring MVC拦截 --> <mvc:default-servlet-handler /> <mvc:resources location="/resources/" mapping="/resources/**" /> <bean id="springContextHelper" class="com.wjy.util.ApplicationContextHandler"></bean> <!-- 视图页面配置 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/views/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> </beans>
4、spring-mybatis.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"> <!--1 引入属性文件,在配置中占位使用,可以通过${属性名}获得属性文件中的内容 --> <context:property-placeholder location="classpath*:jdbc.properties" /> <!--2 配置一个Spring提供的数据源 :jdbc数据源,创建一个驱动管理数据源的bean --> <bean id="jdbcDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <!--3 会话工厂bean sqlSessionFactoryBean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 数据源 --> <property name="dataSource" ref="jdbcDataSource"></property> <!-- 别名 --> <property name="typeAliasesPackage" value="com.zr.workflow.activiti.entity"></property> <!-- sql映射文件路径 --> <!-- 扫描mappers目录以及子目录下的所有xml文件 --> <property name="mapperLocations" value="classpath:mybatis/mappers/**/*.xml" /> </bean> <!--4 自动扫描对象关系映射 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--指定会话工厂,如果当前上下文中只定义了一个则该属性可省去 --> <!-- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> --> <!-- basePackage 属性是让你为映射器接口文件设置基本的包路径。 你可以使用分号或逗号 作为分隔符设置多于一个的包路径 --> <property name="basePackage" value="com.wjy.dao" /> </bean> <!--5 声明式事务管理 --> <!--定义事物管理器,由spring管理事务 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="jdbcDataSource"></property> </bean> <!--支持注解驱动的事务管理,指定事务管理器 --> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- 自动扫描包,实现支持注解的IOC在Junit测试Mybatis Service时放开 --> <!-- <context:component-scan base-package="com.wjy.activiti"></context:component-scan> --> </beans>
5、spring-activiti.xml
6、jdbc.properties
#mysql jdbc jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/activitidb?useSSL=false&zeroDateTimeBehavior=round&useUnicode=yes&characterEncoding=UTF8 jdbc.username=root jdbc.password=123456
7、log4j.properties
### set log levels ### log4j.rootLogger = INFO , C , D , E ### console ### log4j.appender.C = org.apache.log4j.ConsoleAppender log4j.appender.C.Target = System.out log4j.appender.C.layout = org.apache.log4j.PatternLayout log4j.appender.C.layout.ConversionPattern = [springmvc_demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n ### log file ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = ../logs/springmvc-mybatis-demo.log log4j.appender.D.Append = true log4j.appender.D.Threshold = INFO log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = [springmvc_demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n ### exception ### log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File = ../logs/springmvc-mybatis-demo_error.log log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern = [springmvc_demo][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n
三、整合activiti-explorer
1、将diagram-viewer、editor-app、modeler.html拷贝到src/main/webapp下
2、将stencilset.json拷贝到/src/main/resources下
代码目录结构:
参考:
activiti-explorer项目部署
https://blog.csdn.net/xhaimail/article/details/79507096
Activiti介绍与官方demo使用(activiti-explorer)
https://blog.csdn.net/qq_28582847/article/details/79898916
Spring学习之整合Activiti(一)
https://www.jianshu.com/p/6408b0f5f165
Spring学习之整合Activiti(二)
https://www.jianshu.com/p/3809132c2a12
Spring学习之整合Activiti(三)之Id生成
https://www.jianshu.com/p/fce7604350cc
工作流Activiti异常积累
https://www.jianshu.com/p/2df67a811aea
原文地址:https://www.cnblogs.com/cac2020/p/11646652.html
- 最新机器学习必备十大入门算法!都在这里了
- ASP.NET MVC的Razor引擎:IoC在View激活过程中的应用
- 深度学习笔记:深度学习在计算机视觉的应用
- 快速添加永久存储到到Minishift / CDK 3
- 张小龙发布2018微信全新计划(内附演讲全文)
- 使用JClouds在Java中获取和发布云服务器
- 利用ASP.NET SiteMap生成与Bootstrap"兼容"菜单
- 埃隆·马斯克强烈推荐的5本书,看完之后他开始改变世界
- 算法:AOE网(Activity On edge Network)与关键路径简介
- ASP.NET Core的配置(4):多样性的配置来源[中篇]
- ASP.NET MVC的Razor引擎:RazorViewEngine
- 算法:求解AOE网的关键路径
- 编程小技巧:多态原理
- ASP.NET Core的配置(4):多样性的配置来源[下篇]
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Linux分区页框分配器之水位
- 使用GPU训练模型
- Spring事务源码分析专题(一)JdbcTemplate使用及源码分析
- TensorFlow处理运动想象分类任务
- 使用kepler.gl可视化地理空间数据
- 聊聊 Python 代码覆盖率工具 - Coverage
- 目标检测模型YOLO-V1损失函数详解
- 轻松学Pytorch-使用ResNet50实现图像分类
- IDEA奇淫小技巧
- [PHP框架] ThinkPHP6 介绍、安装及配置
- 【翻译】withoutboats 的 io-uring 笔记
- [Python]随机生成大量的虚拟信息测试数据(姓名,手机号,ID,家庭住址等)
- Java核心技术之动态代理
- 开源verilog仿真工具iverilog+GTKWave初体验
- [算法] 数组排序 - 冒泡排序法与直接选择排序法