Heim  >  Artikel  >  Java  >  Eine kurze Analyse der Spring- und Springboot-Anmerkungen

Eine kurze Analyse der Spring- und Springboot-Anmerkungen

不言
不言nach vorne
2018-10-15 16:03:292244Durchsuche

Der Inhalt dieses Artikels befasst sich mit der kurzen Analyse von Spring- und Springboot-Anmerkungen. Ich hoffe, dass er für Freunde in Not hilfreich ist.

@ConfigurationProperties

Es ist sehr praktisch, den Inhalt in der Ressourcendatei an das Objekt zu binden

@Value( "${app.name}")

Einfachen Wert einfügen

@Import

Fügen Sie die Instanz durch Importieren zu springIOC hinzu Fügen Sie im Container die Annotation @Import in der Annotationskonfiguration

/**
 * 定义一个圆形
 *
 * @author zhangqh
 * @date 2018年5月1日
 */
public class Circular {
}
/**
 * 定义一个正方形
 *
 * @author zhangqh
 * @date 2018年5月1日
 */
public class Square {
}

MainConfig wie folgt hinzu:

@Import({Square.class,Circular.class})
@Configuration
public class MainConfig
AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(MainConfig.class);
String[] beanNames = applicationContext2.getBeanDefinitionNames();
for(int i=0;i<beanNames.length;i++){
    System.out.println("bean名称为==="+beanNames[i]);
}

Ausführungsergebnisse:

bean名称为===mainConfig
bean名称为===com.zhang.bean.Square
bean名称为===com.zhang.bean.Circular

@RequestMapping

Diese Annotation kann für Klassen und Methoden verwendet werden, um den übergeordneten Pfad anzugeben. Wenn die Klasse beispielsweise demo und die Methode /demo1 ist, lautet der Zugriffspfad demo/demo1

Diese Annotation hat sechs Attribute:

params: Die angegebene Anfrage muss bestimmte Parameterwerte enthalten, bevor sie von dieser Methode verarbeitet werden kann.

Header: Die angegebene Anfrage muss bestimmte angegebene Header-Werte enthalten, damit diese Methode die Anfrage verarbeiten kann.
Wert: Geben Sie die tatsächliche Adresse der Anforderung an. Die angegebene Adresse kann ein URI-Vorlagenmodus sein.
Methode: Geben Sie den Methodentyp der Anforderung an, GET, POST, PUT, DELETE usw.
verbraucht: Geben Sie den Übermittlungsinhaltstyp für die Verarbeitung der Anfrage an (Content-Type), z. B. application/json, text/html. Gibt den Inhaltstyp an, der zurückgegeben werden soll. Nur wenn der (Accept)-Typ im Anfrageheader enthalten ist Der angegebene Typ

wird zurückgegeben.
@PathVariable

entspricht der Variablen im Pfad und wird vor dem Parameter verwendet. Der Variablenname im Pfad muss mit dem Parameternamen übereinstimmen

RequestMapping("demo/demo1/{name}")public String say(@PathVariable String name){
}
@RequestParam

hat die gleiche Wirkung wie der folgende Code

String name =request. getParameter("name").

@RequestBody

bedeutet, dass die Methodenparameter an den HTTP-Anforderungstext gebunden sind und das Front-End ihn nicht im Formular übermitteln kann und in JSON übermittelt werden muss .

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
   //可以绑定自定义的对象类型
}

@ResponseBody

gibt an, dass es sich bei der Ausgabe um Daten im JSON-Format handelt.

@ModelAttribute

1 Bei Anwendung auf Parameter werden die vom Client übergebenen Parameter namentlich in das angegebene Objekt eingefügt und dieses Objekt wird automatisch hinzugefügt In ModelMap ist es praktisch für die Verwendung in der Ansichtsebene.

2 Wenn es auf Methoden angewendet wird, wird es vor jeder mit @RequestMapping markierten Methode ausgeführt automatisch zur ModelMap hinzugefügt;

@Bean

entspricht 60e23eb984d18edbb092da6b8f295aba4bb0e59fd50cbfe6f6ce2215b9d94243. Es wird über der Methode platziert Klasse, was bedeutet, eine Bohne zu generieren und an die Federverwaltung zu übergeben.

@Qualifier

Wenn mehrere Beans desselben Typs vorhanden sind, können Sie zur Angabe @Qualifier("name") verwenden. Wird in Verbindung mit @Autowired verwendet

@Autowired

gehört zum Spring-Paket org.springframework.beans.factory.annotation und kann für Klassenattribute, Konstruktoren und Methoden verwendet werden Für die Wertinjektion ist

@Resource

keine Annotation von Spring, sondern stammt aus JSR-250 unter dem Paket java.annotation. Verwenden Sie diese Annotation als Ziel-Bean . Geben Sie die Collaborator-Bean an.

@Resource entspricht @Autowired und kann mit der Setter-Methode eines Felds oder Attributs versehen werden.

Hinweis:

Die Annotation @Autowired wird standardmäßig nach Typ zusammengestellt. Wenn der Container mehrere Beans desselben Typs enthält, wird eine Ausnahme gemeldet, dass der angegebene Bean-Typ nicht gefunden werden kann beim Starten des Containers. Es wird in Kombination mit der Annotation @Qualified qualifiziert und gibt den Namen der injizierten Bean an.

@Resource Wenn das Namensattribut nicht angegeben ist und das abhängige Objekt nicht gemäß dem Standardnamen gefunden werden kann, greift die @Resource-Annotation nach Typ auf die Assembly zurück. Sobald jedoch das Namensattribut angegeben ist, kann es nur noch nach Namen zusammengestellt werden.

Beim Assemblieren mit der Annotation @Autowired können leicht Ausnahmen ausgelöst werden, insbesondere wenn mehrere Bean-Typen assembliert werden. Die Lösung besteht darin, @Qualitied zur Qualifizierung hinzuzufügen.

Anmerkungen zur Komponentenklasse

@Component: Standard einer gewöhnlichen Spring-Bean-Klasse.

@Repository: Markieren Sie eine DAO-Komponentenklasse.

@Service: Markieren Sie eine Geschäftslogik-Komponentenklasse.

@Controller: Markieren Sie eine Controller-Komponentenklasse.

@Component kann @Repository, @Service und @Controller ersetzen, da diese drei Anmerkungen von @Component mit Anmerkungen versehen werden. Die mit Anmerkungen versehene Java-Klasse wird als Bean-Instanz behandelt. Der Name der Bean-Instanz ist standardmäßig der erste Buchstabe der Bean-Klasse in Kleinbuchstaben, und die anderen Teile bleiben unverändert. @Service kann den Bean-Namen auch anpassen, er muss jedoch eindeutig sein!

@SpringBootApplication

Enthält @Configuration, @EnableAutoConfiguration, @ComponentScan

wird normalerweise in Startup-Klassen verwendet.


@ComponentScan

Komponentenscan. Wenn Klassen mit @Component @Controller @Service und anderen Annotationen gescannt werden, werden diese Klassen als Beans registriert.

@Configuration

gibt an, dass diese Klasse die Informationsquelle der Bean-Konfiguration ist, was 3c9fdce8078791299ca92e41bddc2b8fa6748f3712e7c0e1f60ffca24b3db7b0 in XML entspricht und normalerweise hinzugefügt wird zum Hauptklassenvorgesetzten.

@EnableAutoConfiguration

Lassen Sie Spring Boot das Spring-Framework automatisch basierend auf den von der Anwendung deklarierten Abhängigkeiten konfigurieren, die normalerweise der Hauptklasse hinzugefügt werden.

@Profiles
Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。
任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

@Configuration
@Profile("prod")public class ProductionConfiguration {    // ...}

Das obige ist der detaillierte Inhalt vonEine kurze Analyse der Spring- und Springboot-Anmerkungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen