[JAVA] Mémorandum d'annotation de printemps-Il y a aussi lombok-

Titre

Mémorandum d'annotation de printemps

Aperçu

Depuis que j'apprends, je pense qu'il y a beaucoup de malentendus et de manque d'explication, alors j'apprécierais que quelqu'un le remarque. De plus, si vous savez quelque chose qui n'est pas mentionné et dont il est utile de se souvenir, veuillez commenter ~~ pleurer ~~.

Objectif

table des matières

Classer dans les endroits susceptibles d'être fréquemment utilisés (* Utilisé dans une classe spécifique, non disponible)

  1. Controller  1. @Controller  2. @RequestMapping  3. @ResponseBody  4. @PostMapping  5. @GetMapping  6. @PathVariable  7. @RequestParam  8. @Autowired  9. @Value

  2. Service  1. @Service  2. @Transactional

  3. Repository  1. @Repository

  4. Component  1. @Component  2. @Data

  5. Controller Contrôlez la transition de l'écran (mappage des demandes) et appelez le service.

1-1. @Controller

Quand l'utilisez vous?

Diverses explications

Exemple de phrase

ExampleController.java


@Controller
public class ExampleController {
	//Omission
}

référence


1-2. @RequestMapping(value="URL")

Quand l'utilisez vous?

Diverses explications

Attribut qui peut être spécifié

Vous pouvez spécifier l'en-tête HTTP.

Il semble. Pour plus de détails, reportez-vous à [Référence: méthode de mappage entre la méthode de traitement du contrôleur et la requête (URL, etc.)]

Vous pouvez spécifier des paramètres de demande. Il semble. (Voir référence pour plus de détails)

Exemple de phrase

ExampleController.java


@Controller
@RequestMapping(value="/example")
public class ExampleController {

	@RequestMapping("sample") //Http dans l'URL://xxxx:xxxx/example/Appelé lorsque l'échantillon est exécuté.(Chemin relatif)
	public String sampleMethod() {
		return "example/sample"; //Si la structure de répertoires est la structure par défaut, src/templates/example/sample.Renvoie du HTML
	}
}

référence


1-3. @ResponseBody

Quand l'utilisez vous?

Lorsque vous voulez retourner une vue autre que la vue correspondant au chemin du modèle avec @ RequestMapping. (Demande de mappage sans transition de page, etc.)

Diverses explications

Exemple de phrase

ExampleController.java


@Controller
@RequestMapping(value="/example")
public class ExampleController {

	@RequestMapping("/sample")
	@ResponseBody
	public String sampleMethod() {
		return "sample"; //"sample"Renvoie la chaîne littérale.
	}
}

référence


1-4.@PostMapping

Quand l'utilisez vous?

Diverses explications

Exemple de phrase

ExampleController.java


@Controller
@RequestMapping("/example")
public class ExampleController {

	@PostMapping("top")
	public String top() {
		//Omission
	}
}

référence



1-5. @GetMapping

Quand l'utilisez vous?

Diverses explications

Exemple de phrase

ExampleController.java


@Controller
@RequestMapping("/example")
public class ExampleController {

	@GetMapping("top")
	public String top() {
		//Omission
	}
}

référence


1-6. @PathVariable

Quand l'utilisez vous?

Diverses explications

Exemple de phrase

ExampleController.java


@Controller
@RequestMapping("/example")
public class ExampleController {
	
	//http://xxxx:xxxx/example/myPage/Appelé lorsqu'une demande telle que 12345 arrive
	//La valeur PostMapping et userId sont les clés et la valeur URL est la valeur.
	@PostMapping("myPage/{userId}")
	public String myPage(
		@PathVariable("userId") int argUserId		
	) {
		//Omission
	}	
}

référence


1-7. @RequestParam

Quand l'utilisez vous?

Lorsque vous souhaitez obtenir la valeur de paramètre donnée à l'URL.

Diverses explications

Exemple de phrase

ExampleController.java


@Controller
@RequestMapping("/example")
public class ExampleController {
	
	//http://xxxx:xxxx/example/account?userId=Appelé lorsqu'une demande telle que 12345 arrive
	//userId=12345 userId est la clé et 12345 est la valeur
	@PostMapping("account")
	public String top(
		@RequestParam("userId") int argUserId
	) {
		//Omission
	}
}

référence


1-8.@Autowired

Quand l'utilisez vous?

Utilisé lorsque vous souhaitez définir une instance pour une variable. (Il semble que ce n'est pas recommandé ... Recherche par injection de constructeur pour plus de détails)

Diverses explications

@Autowired est une annotation attachée à une variable d'instance afin de définir un objet approprié sous Spring management sur une variable. Référence: [Spring] Extrait des bases de la DI en utilisant @Autowired et @Component

J'ai trouvé cette explication la plus simple à comprendre au cours de mes recherches. (* Les objets sous gestion Spring sont reconnus comme des composants.)

Exemple de phrase

CalcService.java


@Service
public interface CalcService {
	public int add(int x, int y);
}

CalcServiceImpl.java


@Service
public class CalcServiceImpl implements CalcService {
	public int add(int x, int y) {
		return x + y;
	}
}

ExampleController.java


@Controller
@RequestMapping("/example")
public class ExampleController {
	@Autowired
	CalcService calcService;

	@RequestMapping("calc")
	public String printTotal() {
		int x = 5;
		int y = 20;
		
		calcService.add(x, y);
		//(Omis)
		return "example/result"; 
	}
}

référence


1-9. @Value

Quand l'utilisez vous?

Diverses explications

Exemple de phrase

Une sorte de fichier de propriété


sample.sampleId=12345
sample.samplePass=password

Sample.java


@Component
public class Sample {
	@Value("${sample.sampleId}")
	private int id;

	@Value("${sample.samplePass}")
	private String password;
}

référence


2.Service Fourniture de traitement métier (Business Logic).

2-1. @Service

Quand l'utilisez vous?

Diverses explications

Exemple de phrase

SampleService.java


@Service
public interface SampleService {
	public void print();
}

SampleServiceImpl.java


@Service
public class SampleServiceImpl implements SampleService {
	public void print() {
		System.out.print("Hello.");
	}
}

2-2. @Transactional

Quand l'utilisez vous?

Diverses explications

Conditions pour que @Transactional fonctionne ・ Doit être une méthode publique de la classe DI -Appelée directement depuis une autre classe ou un framework qui est DI

Exemple de phrase


//en pensant

référence


Repository Fournit des classes pour la couche d'accès aux données.

3-1. @Repository

Quand l'utilisez vous?

Diverses explications

Exemple de phrase

SampleRepository.java


@Repository
public interface SampleRepository {
	public List<String> search(String keyword);
}

SampleRepositoryImpl.java


@Repository
public class SampleRepositoryImpl implements SampleRepository {
	public List<String> search(String keyword) {
		//Traitement des opérations DB
	}
}

référence


Component

4-1. @Component

Quand l'utilisez vous?

Diverses explications

Exemple de phrase

Account.java


@Component
public class Account {
	private String id;
	private String name;
	
	//getter,abréviation du setter
}

référence


4-2. @Data

Quand l'utilisez vous?

Lorsque vous souhaitez réduire la quantité de code dans la classe Bean.

Diverses explications

Exemple de phrase

Account.java


@Component
@Data
public class Account {
	private String accountId;
	private String password;
	private String firstName;
	private String lastName;
	private int age;
	
	//getter,Il n'y a pas de description du setter, mais il peut être utilisé car il est implémenté en interne.
}

référence


Recommended Posts

Mémorandum d'annotation de printemps-Il y a aussi lombok-
Qu'est-ce que Spring Tools 4
Qu'est-ce qu'une annotation?
Spring Boot pour l'apprentissage des annotations
Une instance de l'annotation est Dynamic Proxy