Depuis la sortie de la série 2 de spring boot, c'est un mémo lors de la mise à niveau car c'est un gros problème
Le guide de migration est officiellement disponible, suivez donc cette procédure. Guide de migration Spring Boot 2.0 En outre, cet article a été très utile. Mémorandum lorsque Spring Boot 1.5.10 → Spring Boot 2.0.0
build.gradle comme décrit dans [Avant de commencer](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide#before-you-start) Ajoutez ce qui suit à
.
build.gradle
runtime("org.springframework.boot:spring-boot-properties-migrator")
Cela vous avertira des changements dans les spécifications de ʻapplication.yml`.
Un plugin qui résout les dépendances comme décrit dans Dependency Management Ajouter.
build.gradle
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management' // <-- add this to your build.gradle
spring.batch.initializer.enabled
a été changé en spring.batch.initialize-schema
, alors changez-le ici.
Puisqu'il ne s'initialise pas, définissez «jamais».
Initialize a Spring Batch Database
application.yml
spring:
batch:
initializer:
enabled: false
application.yml
spring:
batch:
initialize-schema: never
Celui défini dans le cas du chameau sur application.yml était une erreur. Même si c'est une affaire de kebab. Je vais donc en faire une caisse de kebab.
application.yml
spring:
datasource:
hogeHoge:
driverClassName: com.mysql.jdbc.Driver
application.yml
spring:
datasource:
hoge-hoge:
driver-class-name: com.mysql.jdbc.Driver
Auparavant, les fichiers jar étaient générés avec bootRepackage
pour la génération de paquets, mais cela semble être aboli.
Remplacé par «bootJar» et «bootWar». Cependant, en raison du paramétrage du sujet, bootJar
est défini sur ʻenabled = false`.
build.gradle
mainClassName = 'jp.co.hoge.fuga.App'
bootRepackage {
executable = true
}
jar {
manifest {
attributes 'GitHub-Branch-Name' : branchname
attributes 'GitHub-Commit-Hash' : commithash
}
}
build.gradle
ext.mainClass = 'jp.co.hoge.fuga.App'
bootJar {
enabled = false
}
jar {
enabled = true
manifest {
attributes 'GitHub-Branch-Name' : branchname
attributes 'GitHub-Commit-Hash' : commithash
}
}
À l'origine, j'utilisais gradlew était de 4,6, mais je vais le donner au dernier 4.7.
build.gradle
task wrapper(type: Wrapper) {
gradleVersion = "4.7"
}
J'utilisais le pool de connexion de tomcat, HikariCP est devenu la valeur par défaut, alors changez-le ici.
DataSourceConfiguration.java
@Data
@Component
@ConfigurationProperties(prefix = "spring.datasource.hoge")
public class DataSourceConfiguration {
private String driverClassName;
private String url;
private String username;
private String password;
private Boolean testOnBorrow;
private String validationQuery;
public DataSource dataSource() {
DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource();
ds.setDriverClassName(driverClassName);
ds.setUrl(url);
ds.setUsername(username);
ds.setPassword(password);
ds.setTestOnBorrow(testOnBorrow);
ds.setValidationQuery(validationQuery);
return ds;
}
}
DataSourceConfiguration.java
@Data
@Component
@ConfigurationProperties(prefix = "spring.datasource.hoge")
public class DataSourceConfiguration {
private String driverClassName;
private String url;
private String username;
private String password;
private Integer maxPoolSize;
private String validationQuery;
public HikariDataSource dataSource() {
HikariDataSource ds = new HikariDataSource();
ds.setDriverClassName(driverClassName);
ds.setJdbcUrl(url);
ds.setUsername(username);
ds.setPassword(password);
ds.setConnectionInitSql(validationQuery);
ds.setMaximumPoolSize(maxPoolSize);
return ds;
}
}
Vous devez également définir le délai d'expiration de la requête, etc., mais je ne l'ai pas défini cette fois car il y a SQL de batch qui continue de fonctionner pendant une longue période.
«WebMvcConfigurerAdapter» est obsolète en raison de spring5.
Puisqu'il dit que vous pouvez utiliser WebMvcConfigurer
, changez-le ici.
Je pense que c'est parce que j'ai commencé à utiliser la méthode par défaut.
WebMvcConfig.java
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
//Abréviation
}
WebMvcConfig.java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
//Abréviation
}
À l'origine obsolète, elle est obsolète et doit être modifiée.
PasswordEncoderConfig.java
@Bean
public PasswordEncoder md5PasswordEncoder() {
return new Md5PasswordEncoder();
}
PasswordEncoderConfig.java
@Bean
public PasswordEncoder md5PasswordEncoder() {
return new MessageDigestPasswordEncoder("MD5");
}
Je voudrais arrêter d'utiliser MD5 lui-même, mais ce n'est pas recommandé car c'est assez difficile pour les projets de longue durée, mais je l'éviterai une fois.
Je vais l'utiliser car il a été ajouté à partir de Spring Security 5.
Il semble qu'il délègue le traitement au PasswordEncoder approprié pour chaque algorithme de hachage de mot de passe.
Il y avait une classe qui a été définie par défaut, alors utilisez PasswordEncoderFactories
pour la générer.
Par défaut, il renvoie bcrypt.
PasswordEncoderConfig.java
@Bean
public PasswordEncoder delegatingPasswordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}
ʻOrg.hibernate.validator.constraints.NotBlankest obsolète et sera modifié. Puisque
javax.validation.constraints.NotBlank` est implémenté avec le même nom de classe, il était correct de ne remplacer que la partie import à la fois.
Avec ce genre de réponse, cela fonctionne très bien. fin
Recommended Posts