Nach der offiziellen Veröffentlichung von Activiti7 wird die integrierte Entwicklung mit SpringBoot2.x vollständig unterstützt. Wir können die Koordinaten der integrierten Entwicklung von Activiti7 und SpringBoot in das Projekt einführen, sodass SpringBoot die Activti7-Integration unterstützen kann. 1. Erstellen Sie ein SpringBoot-Projekt mit IDEA Führen Sie relevante Abhängigkeiten in die pom.xml-Datei des Projekts ein. Die spezifischen Abhängigkeiten sind wie folgt <?xml version="1.0" encoding="UTF-8"?> <Projekt xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <übergeordnetes Element> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> <!-- übergeordnetes Element im Repository suchen --> </übergeordnet> <groupId>com.beispiel</groupId> <artifactId>Aktivitäten</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Aktivitäten</name> <description>Demoprojekt für Spring Boot</description> <Eigenschaften> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </Eigenschaften> <Abhängigkeiten> <Abhängigkeit> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </Abhängigkeit> <Abhängigkeit> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </Abhängigkeit> <Abhängigkeit> <groupId>org.springframework.boot</groupId> <artifactId>Spring-Boot-Starter-Test</artifactId> <scope>Test</scope> </Abhängigkeit> <Abhängigkeit> <groupId>org.activiti</groupId> <artifactId>Aktivität-Spring-Boot-Starter</artifactId> <version>7.0.0.Beta2</version> </Abhängigkeit> <Abhängigkeit> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </Abhängigkeit> <Abhängigkeit> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.27</version> </Abhängigkeit> <Abhängigkeit> <groupId>org.projektlombok</groupId> <artifactId>Lombok</artifactId> <optional>wahr</optional> </Abhängigkeit> </Abhängigkeiten> <Bauen> <Plugins> <Plugin> <groupId>org.springframework.boot</groupId> <artifactId>Spring-Boot-Maven-Plugin</artifactId> </plugin> </plugins> </bauen> </Projekt> 2.application.yml-Dateikonfiguration Um die von Activiti7 generierten Tabellen in die MySQL-Datenbank einzufügen, müssen Sie relevante Konfigurationen in der Konfigurationsdatei application.yml hinzufügen. Server: Port: 8085 Frühling: Anwendung: Name: Frühlingsaktivitäten Datenquelle: URL: jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&nullCatalogMeansCurrent=true Benutzername: root Passwort: 123456 Treiberklassenname: com.mysql.jdbc.Driver Aktivitäten: #1.flase: Standardwert. Wenn Activiti gestartet wird, vergleicht es die in der Datenbanktabelle gespeicherten Versionen. Wenn keine Tabelle vorhanden ist oder die Versionen nicht übereinstimmen, wird eine Ausnahme Nr. 2 ausgelöst. true: Activiti aktualisiert alle Tabellen in der Datenbank. Wenn die Tabelle nicht existiert, wird sie automatisch erstellt. #3.create_drop: Erstellt die Tabelle, wenn Activiti startet, und löscht die Tabelle, wenn sie heruntergefahren wird (die Engine muss manuell heruntergefahren werden, um die Tabelle zu löschen). #4.drop-create: Löschen Sie die ursprüngliche alte Tabelle, wenn Activiti startet, und erstellen Sie dann eine neue Tabelle (die Engine muss nicht manuell heruntergefahren werden). Datenbankschema-Update: true #Überprüfen Sie, ob die Verlaufstabelle vorhanden ist db-history-used: true #Aufzeichnungsverlaufsebene Die konfigurierbaren Verlaufsebenen sind Keine, Aktivität, Audit, Voll Verlaufsebene: vollständig #Prozessdateien prüfen. Standardmäßig werden die Prozessdateien im Ordner „Prozesse“ unter „Ressourcen“ geprüft. check-process-definitions: false 3. Fügen Sie die Integrationskonfiguration des SpringSecurity-Sicherheitsframeworks hinzu Nachdem Activiti7 in SpringBoot integriert wurde, ist das SpringSecurity-Sicherheitsframework standardmäßig integriert. Daher müssen wir die relevanten von SpringSecurity integrierten Benutzerberechtigungskonfigurationsinformationen vorbereiten. 1) SecurityUtil-Klasse hinzufügen Eine hinzugefügte Komponente zum schnellen Konfigurieren des SpringSecurity-Sicherheitsframeworks. @Komponente öffentliche Klasse SecurityUtil { privater Logger-Logger = LoggerFactory.getLogger (SecurityUtil.class); @Autowired @Qualifier("meinBenutzerdetailsdienst") privater UserDetailsService BenutzerDetailsService; public void logInAs(String Benutzername) { UserDetails Benutzer = userDetailsService.loadUserByUsername(Benutzername); wenn (Benutzer == null) { throw new IllegalStateException("Benutzer " + Benutzername + " existiert nicht, bitte geben Sie einen gültigen Benutzer ein"); } logger.info("> Angemeldet als: " + Benutzername); SecurityContextHolder.setContext(neu SecurityContextImpl(neu Authentifizierung() { @Überschreiben öffentliche Sammlung<? erweitert GrantedAuthority> getAuthors() { gibt user.getAuthorities() zurück; } @Überschreiben öffentliches Objekt getCredentials() { Benutzer zurückgeben.getPassword(); } @Überschreiben öffentliches Objekt getDetails() { Benutzer zurückgeben; } @Überschreiben öffentliches Objekt getPrincipal() { Benutzer zurückgeben; } @Überschreiben öffentlicher Boolescher Wert ist authentifiziert() { gibt true zurück; } @Überschreiben public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { } @Überschreiben öffentliche Zeichenfolge getName() { Benutzer zurückgeben.getUsername(); } })); org.activiti.engine.impl.identity.Authentication.setAuthenticatedUserId(Benutzername); } } Diese Klasse finden Sie im offiziell von Activiti7 bereitgestellten Beispiel. 2) Fügen Sie die Klasse DemoApplicationConfig hinzu Seine Aufgabe besteht darin, die Konfiguration der Benutzerberechtigungen des SpringSecurity-Frameworks zu implementieren, damit wir Benutzerberechtigungsinformationen im System verwenden können @Konfiguration öffentliche Klasse DemoApplicationConfiguration { privater Logger-Logger = LoggerFactory.getLogger (DemoApplicationConfiguration.class); @Bohne öffentlicher UserDetailsService meinUserDetailsService() { InMemoryUserDetailsManager inMemoryUserDetailsManager = neuer InMemoryUserDetailsManager(); String[][] BenutzerGruppenUndRollen = { {"salaboy", "Passwort", "ROLE_ACTIVITI_USER", "GROUP_activitiTeam"}, {"ryandawsonuk", "Passwort", "ROLE_ACTIVITI_USER", "GROUP_activitiTeam"}, {"erdemedeiros", "Passwort", "ROLE_ACTIVITI_USER", "GROUP_activitiTeam"}, {"anderes", "Passwort", "ROLE_ACTIVITI_USER", "GROUP_anderesTeam"}, {"system", "password", "ROLE_ACTIVITI_USER"}, {"admin", "password", "ROLE_ACTIVITI_ADMIN"}, }; für (String[] Benutzer : BenutzerGruppenUndRollen) { List<String> authoritiesStrings = Arrays.asList(Arrays.copyOfRange(Benutzer, 2, Benutzer.Länge)); logger.info("> Neuer Benutzer wird registriert: " + user[0] + " mit den folgenden Authorities[" + authoritiesStrings + "]"); inMemoryUserDetailsManager.createUser(neuer Benutzer(Benutzer[0], passwordEncoder().encode(Benutzer[1]), authoritiesStrings.stream().map(s -> neue SimpleGrantedAuthority(s)).collect(Collectors.toList()))); } inMemoryUserDetailsManager zurückgeben; } @Bohne öffentlicher PasswordEncoder passwordEncoder() { gibt neuen BCryptPasswordEncoder() zurück; } } 4) Erstellen Sie eine Testklasse @SpringBootTest @Slf4j Klasse ActivitiApplicationTests { @Autowired private ProzessEngine ProzessEngine; /** * Bereitstellung der Prozessdefinition */ @Prüfen public void erstelleBereitstellung() { RepositoryService repositoryService = processEngine.getRepositoryService(); Bereitstellung Bereitstellung = repositoryService.createDeployment() .addClasspathResource("diagram/holiday.bpmn")//BPMN-Ressourcen hinzufügen.addClasspathResource("diagram/holiday.png") .name("Prozess des Urlaubsantragsformulars") .einsetzen(); log.info("Prozessbereitstellungs-ID:" + deployment.getName()); log.info("Name der Prozessbereitstellung:" + deployment.getId()); } } Laufergebnisse: Aufgetretene Probleme: 1) Die Verlaufstabelle wird nicht standardmäßig generiert und muss in application.yml konfiguriert werden Frühling: Aktivitäten: #Überprüfen Sie, ob die Verlaufstabelle vorhanden ist db-history-used: true #Aufzeichnungsverlaufsebene Die konfigurierbaren Verlaufsebenen sind Keine, Aktivität, Audit, Voll Verlaufsebene: vollständig Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: jQuery erzielt einen Bildlaufwiedergabeeffekt auf großem Bildschirm
Wir müssen darauf achten, dass die Eigenschaften ...
veranschaulichen Bei der Front-End-Entwicklung tr...
Als ich heute eine Redis-Umgebung in Docker erste...
Code kopieren Der Code lautet wie folgt: <html...
Ref-Definition: Wird verwendet, um Referenzinform...
Der <base>-Tag gibt die Standardadresse oder...
Sie können über die besten visuellen Designfähigk...
GitHub-Adresse: https://github.com/dmhsq/dmhsq-my...
In diesem Artikel wird der spezifische Code von V...
Ich habe vor Kurzem angefangen, das NestJs-Framew...
Vorwort Bei einer datenzentrierten Anwendung wirk...
In diesem Artikel zeigt Ihnen der Blogger die häu...
Inhaltsverzeichnis 1. Aufgetretene Probleme 2. An...
Die Kommunikationsmodi der Vue3-Komponenten sind ...
HTML-Semantik scheint ein alltägliches Problem zu...