*Обратите внимание: переменные с final - это константы. При этом их принято писать заглавными буквами - тут CamelStyle не работает :
In java, making something final means that it can't be reasigned to another reference to another instance, but if it's a reference to a mutable class, the mutable values inside the class can still be modified.
For example, a final String is a constant because Strings are immutable in Java, but a final ArrayList means that you cannot assign it to another ArrayList, but you can still add and remove elements to that ArrayList
public class Response {
public int p_id;
public int status;
public String message;
public int id;
public Date dts;
public String text;
}
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.11.1</version>
</dependency>
если не найду тут ответ напишу им, просто 50$ придется платить им за подписку на поддержу, и не факт еще если помогут)) в любом случае спасибо за ответ
Единственный вариант который я вижу и он меня не радует, это экспортировать товар и всю проделанную работу и заново загрузить движок WordPress.
Использую тему *Betheme, лицензия* напомню что после обновления темы а именно с перехода 24.0.3.1 на 25.0.1
Если у каждого сервиса есть свой api, зачем API Gateway (точка входа), можно же на nginx сделать обращение по location на нужный api?
Стоит ли использовать RabbitMQ для общения между сервисами? Правильно ли понимаю, что точка входа на ноде, посылает запрос в раббит и ждет от него же ответ и отдает клиенту?
Например делаем микросервис по авторизации пользователя и регистрации. У него должна быть своя база данных?
Получается микросервис отвечающий за пользователей CRUD + Регистрация, авторизация, сброс пароля?
Есть приложение, читающее файлы из файловой системы и загружающее в БД часть содержимого.
Есть сервисные классы, в них ряд методов, но возвращаемые типы в методах повторяются.
Хотелось бы сделать без спринг шелла, без команд в мейне.
У возвращаемого автора должны быть проинициализированы поля books и genres. Там должны находится
книги которые писал автор и жанры в которых он работал. В свою очередь у каждой книги должна быть
информация в каком жанре она написана и какие у нее авторы. А жанр должен хранить список книг относящихся к нему
и авторов работающих в данном жанре.
Таким образом возвращая автора сервис слою мы должны загрузить кучу информации из базы данных, и это будет не один запрос, а очень много.
-----------------------------------com.example.Example.java-----------------------------------
package com.example;
import java.util.List;
import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
@Generated("jsonschema2pojo")
public class Example {
@SerializedName("total_count")
@Expose
public Long totalCount;
@SerializedName("incomplete_results")
@Expose
public Boolean incompleteResults;
@SerializedName("items")
@Expose
public List<Item> items = null;
}
-----------------------------------com.example.Item.java-----------------------------------
package com.example;
import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
@Generated("jsonschema2pojo")
public class Item {
@SerializedName("id")
@Expose
public Long id;
@SerializedName("node_id")
@Expose
public String nodeId;
@SerializedName("name")
@Expose
public String name;
@SerializedName("full_name")
@Expose
public String fullName;
@SerializedName("private")
@Expose
public Boolean _private;
@SerializedName("owner")
@Expose
public Owner owner;
@SerializedName("html_url")
@Expose
public String htmlUrl;
@SerializedName("description")
@Expose
public String description;
@SerializedName("fork")
@Expose
public Boolean fork;
}
-----------------------------------com.example.Owner.java-----------------------------------
package com.example;
import javax.annotation.Generated;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
@Generated("jsonschema2pojo")
public class Owner {
@SerializedName("login")
@Expose
public String login;
@SerializedName("id")
@Expose
public Long id;
@SerializedName("node_id")
@Expose
public String nodeId;
@SerializedName("avatar_url")
@Expose
public String avatarUrl;
@SerializedName("gravatar_id")
@Expose
public String gravatarId;
@SerializedName("url")
@Expose
public String url;
@SerializedName("html_url")
@Expose
public String htmlUrl;
@SerializedName("followers_url")
@Expose
public String followersUrl;
@SerializedName("following_url")
@Expose
public String followingUrl;
@SerializedName("gists_url")
@Expose
public String gistsUrl;
@SerializedName("starred_url")
@Expose
public String starredUrl;
@SerializedName("subscriptions_url")
@Expose
public String subscriptionsUrl;
@SerializedName("organizations_url")
@Expose
public String organizationsUrl;
@SerializedName("repos_url")
@Expose
public String reposUrl;
@SerializedName("events_url")
@Expose
public String eventsUrl;
@SerializedName("received_events_url")
@Expose
public String receivedEventsUrl;
@SerializedName("type")
@Expose
public String type;
@SerializedName("site_admin")
@Expose
public Boolean siteAdmin;
}
@Entity
@Data
@Table(name = "users")
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class User {
//...
@JsonBackReference
@ToString.Exclude
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "users_roles",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> roles;
}
@Entity
@Data
@EqualsAndHashCode(callSuper = false)
@Table(name = "roles")
public class Role implements GrantedAuthority {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long roleId;
@JsonBackReference
@ToString.Exclude
@ManyToMany(mappedBy = "roles")
private Collection<User> users;
@JsonBackReference
@ToString.Exclude
@ManyToMany
@JoinTable(
name = "roles_privileges",
joinColumns = @JoinColumn(name = "role_id"),
inverseJoinColumns = @JoinColumn(name = "privilege_id"))
private Collection<Privilege> privileges;
@Enumerated(EnumType.STRING)
private UserRole name;
public Role() {
super();
}
public Role(UserRole name) {
super();
this.name = name;
}
@Override
public String getAuthority() {
return name.name();
}
}
public enum UserRole {
USER,
ADMIN
}
@Entity
@Data
@EqualsAndHashCode(callSuper = false)
@Table(name = "privileges")
public class Privilege {
@Enumerated(EnumType.STRING)
private UserPrivilege name;
@JsonBackReference
@ToString.Exclude
@ManyToMany(mappedBy = "privileges")
private Collection<Role> roles;
}
public enum UserPrivilege {
ADMIN_PRIVILEGE,
READ_PRIVILEGE,
WRITING_COMMENTS_PRIVILEGE
}
Scanner scanner = new Scanner(System.in);
System.out.println("Введите слово\n");
String word = scanner.nextLine();
String[] splittedWord = word.split("");
for (String character : splittedWord) {
System.out.print(character.repeat(3));
}
Я сделал зависимость клиента от сервера, то есть удалил класс User из клиента и импортировал этот класс из серверного модуля.
Подскажите как лучше изучать spring, какой современный стек?
Converter<S,T>
), который сконвертирует ваш Request в Response.@PostMapping(path = "/save",
produces = {"application/xml", "text/xml"}, consumes =
MediaType.ALL_VALUE)
public ResponseEntity<Response> pay(@RequestBody Request request){
service.save(request);
// тут конвертируем request в response
return ResponseEntity.ok(response);
}
}
public class response {
public int p_id;
public int status;
public String message;
public int id;
public Date dts;
public String text;
}