This repo is tell you about spring annotation and definite of annotation
- Samrach
@RestController
ααααΎαααααΆαα αααααααΆ class αα½αααΆαααααΆ controller class α¬αααααααΈααΆααααΎααααΈ ααααΆαα controller
@RequestMapping("api/")
αααααΆαα Request rout αα endpoint ααΆαα½α
@MappedSuperclass
ααααΎαααααΆααα ααfields ααΆααααααΆ ααΎαααΆα class αα½αααΆαα α¬entity αα½αααΆαα αααααΆααα αα fields αααααΆααα αααα»α Base Entity αα ααΆαα Entity ααΌαα
@Table(name = β β)
αααααΆααααΆααααααααα
α²αα Table αααα»α Databaseα ααΎαα’αΆα
αααααααααα Table αααα»α Database ααΆα αααααααΆαααααααααααΆα @Table(name = "sample_name")
α
@Entity(name = β β)
ααααΎαααααΆααααααα Object Class αα½αααΆαααααΆ Entity α αΎααααααΎα Table αα
αααα»α Database ααΌα
ααααΆα αααααΆααααΆαααααα name αααα»α @Entity(name = "sample_name")
ααΆααααααΆ αααααααααααα
α²αα Entity αααααααααΎαααα»α JPQL Queriesα ααααΈαα·αααΆααααααααααα ααΊααΆααααααα Default α
ααααΈ Class ααααααα
@ManyToMany
αααααΆαα α αrelationship, FetchType.LAZY αααααΆααααΆα entity ααα αΎαααΎαα ααααΆα row ααααα αααα»α entity αααααα’αα, ααΆααααααΆ ααΎααα’ααα α FetchType.LAZY ααααααΎαα ααΊα’ααααΆα data αααα
@Basic
αααααΆαα default column αα αααα»α Entity dbα Ex: column id ααΆαdata type ααΆlong α’ααα αΉα default ααΆααΊ 64, data type ααΆ String α’ααα αΉα default ααΆααΊ 255 αα½α’αααα
@Id
αααααΆαααααααααΆ Column α αααΉαααΆ id
@GeneratedValue
αααααΆαααααααααΆα Generate Type ID αα ααΆ auto ID(auto ααα α¬αααα’ααααΆαααααΆαα) α¬αα ααΆ ID IDENTITY(αααααΆαααααΆααααα)
@Column
αααααΆααααααα attribute α¬column αα αααα»α Database ααΆα’αΆα null ααΆαα’αα? ααααα length ααΆαααα»ααααΆα ααααα unique ααΆ column αα½αα αααΉαααΆ optional α¬αα unique
@NoRepositoryBean
ααΊαα·αα²αααααααΎα Bean ααααΈ
@Repository
αααααΆααααααα ααΆααΆααΆαααααα component αααααααΎααΆααα ααΎ repository α α αΎαααααΌα Extend α ααααΈ JpaRepository αα½ααααααΎαααααΎαααΆαααΆα Ex: CategoryRepository: JpaRespository (α αααΆα ) ααΎ type ααΆ Long ααααΌαααΆαα Long ααΎααΆ String ααααΌαααΆαα Stringβ¦
@Transient
αα»αα²αα data αααα variable or function calculate ααΆ store αα αααα»α db
@RestController
αααααΆαααααααααΆ ααΆααΆαααααα Controller α αΎααααααΎαααΆ API ααα
@RequestMapping(β/β)
αααααΆαααααααΆααααΆ α²ααααΆαααα·ααα endpoint ααΆαα½α
@GetMapping
αααααΆαααα get α¬α αΌααα endpoint ααΆαα½ααααααΎαα αα get α α αΎα @GetMapping ααΎαα’αΆα ααΆαα rout ααααααΆαααα Ex: @GetMapping(β/getβ)
@Service
αααααΆαααααααααΆ class interface αα½αα αααΉαααΆ service
@Autowired
αααααΆαα inject dependencies ααααααααΎααΆαααα
@PostMapping
αααααΆαα ααααα½αα¬ post αα ααΆαα endpoint α¬rout ααΆαα½α
@RequestBody
αααααΆαα ααααΎαα»α α¬request αα·ααααααααΆαααααΎα α αααααααΎαααΎααααΈα²αα user α’αΆα αααα αΌααα·ααααααααΆα
@JsonInclude(JsonInclude.Include.NON_NULL)
ααΎαα·αααΆ Field page ααΆ Null α αΉα @JsonInclude α’ααα²αα Properties α αααααα, ααΆααααααΆα’αα null ααΆαα²ααα αααα
@JsonIgnore
hide data αα·αα αααααα αΆα client ααΎαα Ex: ααΌα ααΆ password, date of birth, etc
@Transactional
ααααΎαααααΆαα ααΆαααααΎααααα·ααααα·ααΆαα’αααΈαα½α ααααααα»αααααα·ααααα·ααΆααααααΆα Process α’ α¬ α αααΎαααΆαααα Process ααΈα‘ update table user, αα·α process ααΈα’ update table invoice α’ααα αΉα α’αΆααΈα process ααα ααΎαα½αααΆ update αα·α success αα ααΆαα·α role back αααα·αααΆααα’αα, ααΆα’αα update αα½α α αΎααα½αααα α’αα update αα αα·ααΆααα ααΌα ααααΆαα AND ααα ααΎααΆαα·αααααΌααα·αααΆααα’ααα
@Component Annotation
ααΊααΆαα ααα½α (@Repository, @Service, @Controller)
@Controller Annotation
@Configuration Annotation
αααααΆαα α²αα spring boot ααΆα’αααααααΎααΆα configure αααα½ααααααααΆαααα ααΆαα annotation αα½αααα αα ααΎ class config
@Ordered Annotation
αααααΆααααααΎαα ααΎααα½α component α¬αα bean ααΎααααΈααααΎααΆα sort αα ααααααααΆααααα½α class ααΆααααα ααΆααααααΆ αα αααααα start-up application @Ordered ααΆααΆα’αααααααΎααΆαααααααααΆααΎ class ααΆαααααΎααα»α α αΎα class ααΆαααααΎααααααααααΆαα
@Lazy Annotation
αααααΆααααααΎαα ααΎ bean, configuration α¬ component class (ααα½ααα class)α αα αααααα application start-up running α¬ α αΆααααααΎα run project, class αααααΆαααΆαα @Lazy ααΊαα·αααααΌαααΆα initialize αα α¬αα·αααααΌααααααΆααα»αααααΎααααΆαααααααα ααΆα αΆααααααΎα αααααΎα α¬ initialize αα ααααααααΎαα α class αααααΆα @Lazy αα ααααΎααααΆααα
@JsonIgnoreProperties(ignoreUnknown = true)
ααααΎαααααΆααααΆα§ααΆα ααααααααΎα object ααΉαα αΌα database α§αααΆαααΆ save α αΌαααΆα field id, name α’αΈα αΉααα α αΎαααααΆααααααΎααααααααΎαααα sex αα½αααα α αΉαααΎααΎαααααΎ jsonIgnoreproperties ααΉαααΉααΆα’αα error α’αΈαα ααααΎα’ααααααΎ ααΆααΉα error ααΆααΆαα field sex αα·ααααααα αΆαααα’ααααΎα α αΉαααΆαααααΌαα²ααααΎααα ααΆαα field sex αα ααααααα·ααααααα αΆαααααΆααα’ααα
@ComponentScan Annotation
ααΆαα αααΎα ααααΎαα αααααα config file αααααΎαα ααα²ααααΆ scan ααΌα package ααΆαα½α (α’αΆα ααΆαα αααααααΆ package ααααΆα α¬ααΆααααα class ααααΆα α αΎαα’αΆα ααααΎααΆαααΆ multiple ααΆαααα) Example in java code:
@Bean Annotation
αααααΆαα ααΆαααα ααΎ function ααΆ αααααΎαα ααα²ααααΆααααΆααα ααΆ bean, Bean ααΆααααααΆ object αα½ααααααΎααααααααααΆααααΆ public ααααα αααα»α project ααΆααααΌα ααααααααΆααα’αΆα α α ααααΎααΆααΆαααα α αΎαααΆαααααΆαα αααααααα (Singleton)
@Qualifier Annotation
ααΆααααααΆ αα
αααααΆα αααααα Bean ααΎαααΈαα½αααα Bean αααααΆααΆ ααααααααΌα
ααααΆ α¬ Bean αααα½ααα
αααα»α Spring Applicaton Context ααΎαααααΌαααααΎααααΆαα qualifier ααΎααααΈαααααΆαα ααααααααααααααΆ ααΆααααααΆ ααΆα Bean ααΈα αααααααααΆ ααα Bean αααααΆαααααααααα½α
Example Code:
public class UserService {
private final UserRepository userRepository;
public UserService(@Qualifier("userRepositoryImpl1") UserRepository userRepository) {
this.userRepository = userRepository;
}
}
@Test Annotation
ααααΎααααΆαααα
ααΎ Function ααΆαααααΎαα
αα Test
Example Code:
@Test
void givenPerson_whenSerializing_thenIdFieldIgnored()
throws JsonProcessingException {
Person person = new Person(1L, "My First Name", "My Last Name");
String result = new ObjectMapper().writeValueAsString(person);
assertThat(result, containsString("firstName"));
assertThat(result, containsString("lastName"));
assertThat(result, not(containsString("id")));
}
@JsonIgnore Annotation
ααααΎααααΆαααα
ααΎ fields αααααΎααα·αα
αα α²ααααΆα
αΌααα
αααα»α Json αααΆα Json αα·α Javaα ααΎαααααΎααΆ ααΎααααΈ serializing or deserializing αααΆα java object αα
JSON α¬ ααΈ JSON αα
java object αα·αα
*Serializing αα·α Deserializing ααΆααααααΆ ααΆααΆα’αααααααααααΈ java object αα
json α¬ ααΈ json αα
java object αα·αα
Example Code:
class Student {
public int id;
@JsonIgnore
public String systemId;
public int rollNo;
public String name;
@JsonIgnore
public String type;
Student(int id, int rollNo, String systemId, String name, String type){
this.id = id;
this.systemId = systemId;
this.rollNo = rollNo;
this.name = name;
this.type = type;
}
}