Spring - alandrade21/docsCompartilhados GitHub Wiki
@Component | ----@Service | ----@Controller | ----@Repository (DAOs)
Singleton default
@Scope("prototype")
@PostConstruct
@PreDestroy
O arquivo de mensagens deve ter o nome nome_locale.properties, por exemplo, mensagens_pt_BR.properties
Use o método getMessage no context.
Carregar resources de baixo nível (arquivo do sistema de arquivos, por exemplo) pode ser feito com context.getResource. O argumento é uma string que pode ser:
- classpath:caminho/arquivo/arquivo.txt
- file:///caminho/arquivo/arquivo.txt
- http://servidor/caminho/arquivo.txt
A classe de validação deve implementar a interface Validator do Spring.
Use a classe ValidationUtils.
Vários formatadores já fornecidos. API para declaração de novos com base na locale.
- @RestController: Anota o controlador, que é o ponto de entrada da chamada REST.
- @RequestMapping("/greeting"): Anota o método que vai responder à uma chamada num determinado endereço.
- @ResponseBody
- @PathVariable
-
@Entity: Marca a classe como persistível.
-
@Table: Configura o nome da tabela. Opcional. Ou usa indexes ou unique constraints.
@Table(name="tabela", indexes = {@Index(columnList = "col1, col2", name = "idx1", unique = true)}, uniqueConstraints = {@UniqueConstraint(columnNames="col1, col2", name = "idx1")})
-
@Id: Indica que o atributo é PK
-
@GeneratedValue(strategy = GenerationType.IDENTITY): Configura o tipo de geração de PK.
-
@Column(name="nome da coluna", unique = true, nullable = false, length = 14): Configura a coluna no banco.
-
@OneToOne(fetch = FetchType.Lazy): one to one sempre deve ser eager.
-
@JoinColumn(name="col_id"): Coluna de join
-
@Enumerated(EnumType.STRING): Quando o campo possui umvalor enumerado.
-
@ManyToOne: Na classe que tem many, no atributo mapeado como a id da one referenciada.
-
@OneToMany(mappedBy = "coluna"): Na classe que tem one, no atributo lista. MappedBy aponta para o atributo marcado com ManyToOne. por padrão é Lazy.
-
@ManyToMany: Faz esse mapeamento dos dois lado.
@ManyToMany @JoinTable(name="tabelaRelacionamento", joinColumns=@JoinColumn(name="idLocal"), inverseJoinColumns=@JoinColumn(name="idRemoto"))