Allgemeine Anmerkungen und Beispiele für Springboot

Beispiel: @SpringBootApplication

Unter SpringBootden vom Framework automatisch für uns erstellten Startklassen @SpringBootApplicationwerden Annotations-Tags zum Ändern der Startklasse verwendet.
@SpringBootApplicationDas Annotation-Tag ist eigentlich ein zusammengesetztes Annotation-Tag, einschließlich @EnableAutoConfiguration, @ComponentScandas normalerweise in der Hauptklasse verwendet wird

Anmerkung veranschaulichen
@SpringBootApplication Wird verwendet, um Startklassen zur Änderung zu deklarieren
@EnableAutoConfiguration Es handelt sich um springbootdie Kernanmerkung für die automatische Konfiguration, über die springdie Anwendung beanin den Container eingefügt werden muss
@ComponentScan iocEs wird verwendet, um die durch Annotationen identifizierten Klassen automatisch zu scannen und im Container zu generieren bean. Der Standard-Scanbereich sind @ComponentScandie Klassen im Konfigurationsklassenpaket und die Unterpakete, in denen sich die Annotationen befinden

Zwei, @Configuration, @Bean

Anmerkung veranschaulichen
@Aufbau Handeln Sie auf die Klasse , um den Container (Anwendungskontext) zu konfigurieren , was der Verwendung der Klasse als Konfigurationsdatei springentsprichtspringxml
@Bohne Erstellen Sie beanein Objekt und fügen Sie es dem Container hinzu, indem Sie auf die Methode reagieren
Beispiel:

SSMWenn wir während der Integration des nativen Frameworks IOCein benutzerdefiniertes Objekt zum Container hinzufügen möchten, müssen wir die Inhaltsdeklaration des folgenden Tags
unter Springdem Heel-Tag der vom Framework verwendeten Konfigurationsdatei hinzufügen:

<bean id="user" class="com.qf.testspringboot.pojo.User">
 <property name="id" value="1"/>
 <property name="username" value="张三"/>
 <property name="age" value="22"/>
</bean>

Aber im SpringBootFramework dürfen wir IOCbenutzerdefinierte Objekte direkt in den Container einfügen, indem wir Java-Objekte erstellen und zurückgeben.
Dieser Prozess hängt von @ConfigurationAnmerkungs-Tags und @BeanAnmerkungs-Tags ab.
Zuerst bereiten wir eine UserKlasse vor:

@Data //记得要导入Lombok相关的依赖
@NoArgsConstructor
@AllArgsConstructor
public class User {
    
    
 private Integer id;
 private String username;
 private Integer age;
}

Erstellen Sie dann eine UserConfigurationKlasse und verwenden Sie @Configurationdas Annotation-Tag für diese Klasse, um zu deklarieren, dass es sich bei dieser Klasse um eine Konfigurationsklasse handelt:

@Configuration
public class UserConfiguration {
    
    
}

Erstellen Sie eine Methode in dieser Klasse. Der Rückgabewert der Methode ist Userder Typ und der Methodenname ist IOCder Objektname des injizierten Objekts im Container. Verwenden Sie @Beandie Annotationsbezeichnung für diese Methode:

@Configuration
public class UserConfiguration {
    
    
  @Bean
  public User user() {
    
    
  /*
  下列代码等价于:
  <bean id="user" class="com.qf.testspringboot.pojo.User">
  <property name="id" value="1"/>
  <property name="username" value="张三"/>
  <property name="age" value="22"/>
  </bean>
  方法的返回值数据类型等价于<bean>标签中的class属性取值
  方法的方法名等价于<bean>标签中的id属性取值
  */
  User user = new User(1, "张三", 22);
    return user;
  }
}

An diesem Punkt ist der logische Ablauf für SpringBootdas Framework zum Scannen und IOCEinfügen von Objekten in den Container wie folgt:

  1. Wenn das SpringBoot-Framework @Configurationden mit Annotations-Tags versehenen Typ scannt, betrachtet es diese Klasse als Konfigurationsklasse.
  2. @BeanDas Rückgabewertobjekt der mit Annotations-Tags versehenen Methode in der Konfigurationsklasse wird automatisch IOCzur Speicherung in den Container eingefügt.
  3. @BeanDer Datentyp des Rückgabewerts der Annotation-Tag-Dekorationsmethode entspricht dem Attributwert des Tags class.
  4. Standardmäßig @Beanentspricht der Methodenname der mit dem Annotations-Tag dekorierten Methode dem idAttributwert des Tags, dh dem IOCObjektnamen des Objekts im Container.

Auf diese Weise können wir XMLproblemlos IOCbenutzerdefinierte Java-Objekte in den Container einfügen, ohne Konfigurationsdateien zu verwenden.


3. @AutoWired

@AutowiredStandardmäßig wird es nach Typ zusammengestellt, was häufig in Implementierungsklassen der Business-Schicht und Implementierungsklassen der Persistenzschicht verwendet wird

Beispiel:

In TestControllerder Klasse @Autowiredwird ein Objekt automatisch über das Annotation-Tag eingefügt User. Wenn testauf die Methode zugegriffen wird, Userwird das Objekt gedruckt:

@Controller //SpringMVC当中的注解标签都还能用
public class TestController {
    
    
 @Autowired
 private User user; //自动注入自定义的User对象
 @RequestMapping("/test")
 @ResponseBody
 public String test() {
    
    
 System.out.println(user); //打印这个User对象
 return "Hello SpringBoot!";
 }
}

Das laufende Ergebnis des Programms beim Zugriff auf testdie Methode:
Fügen Sie hier eine Bildbeschreibung ein


四、@Service、@Controller、@Repository、@Component

Anmerkung veranschaulichen
@Service Für die Geschäftsschicht wird die Geschäftslogikschicht in den Container serviceeingefügtspring
@Regler Kontrollschicht - controllerInjektionsbehälterspring
@Repository daoInjektionsbehälter springfür Persistenzschicht
@Komponente gemeinsamer domainInjektionsbehälter spring_

Beispiel: @ResponseBody und @RestController

Anmerkung veranschaulichen
@ResponseBody Handeln Sie auf die Methode oder Klasse, lassen Sie das Rückgabeergebnis der Methode direkt in schreiben HTTP response body, ohne den Ansichtsparser zu durchlaufen, und die zurückgegebenen Daten werden direkt auf der Seite angezeigt.
@RestController Es handelt sich um eine Kombination aus @Controllerund , die auf die Klasse einwirkt. Die Wirkung ist gleich dem Hinzufügen von und @ResponseBodyauf die Klasse@ResponseBody@Controller

六、@RequestMapping、@GetMapping、@PostMapping

Anmerkung veranschaulichen
@RequestMapping Verwenden Sie diese Anmerkung, um über die Konfiguration urlzuzugreifen , die getentweder sein oder posten kann
@GetMapping Verwenden Sie diese Anmerkung, um urlüber die Konfiguration zuzugreifen und getdie Anforderungsmethode einzuschränken
@PostMapping Verwenden Sie diese Anmerkung, um urlüber die Konfiguration zuzugreifen und postdie Anforderungsmethode einzuschränken

Beispiel: @RequestParam und @RequestBody

Anmerkung veranschaulichen
@RequestParam Es wird hauptsächlich zum Empfangen url?der folgenden Parameter getoder postAnforderungen verwendet. Solange Parameter dahinter stehen, url?können die entsprechenden Parameter abgerufen werden
@RequestBody Diese Annotation wird verwendet, um Daten zum Anforderungshauptteil abzurufen ( body), getes gibt keinen Anforderungshauptteil und wird daher im Allgemeinen für postAnfragen verwendet
  1. In GETAnfragen können Sie nicht verwenden@RequestBody
  2. In der Anfrage können und POSTverwendet werden . Bei Verwendung muss jedoch die Konfiguration der Parameterkonvertierung vereinheitlicht werden.@RequestBody@RequestParam@RequestBody
  3. Kann mehrere @RequestParamAbrufdaten verwenden, @RequestBodynicht

Ich denke du magst

Origin blog.csdn.net/klylove/article/details/125408327
Empfohlen
Rangfolge