您好,登錄后才能下訂單哦!
SpringBoot2.0中@Configuration注解有什么用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
通過配置文件beans.xml配置user和dog的bean
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="user01" class="com.dashi.bean.User"> <property name="name" value="zhangsan"/> <property name="age" value="18"/> </bean> <bean id="dog01" class="com.dashi.bean.Pet"> <property name="name" value="哈利"/> </bean> </beans>
創建ApplicationContext獲取user bean
/** * spring方式通過getbean /* public static void main(String[] args) { ApplicationContext ac = new FileSystemXmlApplicationContext("classpath:beans.xml"); User user01 = (User) ac.getBean("user01"); }現在我們通過原始的spring的方式去管理這兩個bean**
接下來我們通過spring boot的@Configuration注解來實現bean的管理
創建配置類MyConfig
(該名稱可以自定義),該類通過@Configuration注解
通過@Configuration
注解的類就相當于spring的beans.xml文件,通過@Bean注解的方法即為一個個的bean。bean中的屬性即為spring中的property屬性
/** * 相當于spring中的bean.xml的<bean id="user01"></bean> */ @Configuration public class Myconfig { //方法的名稱就是spring bean中的bean id 該方法為”user01“,屬性為property @Bean public User user01(){ return new User("zhangsan",18); } //方法的名稱就是spring bean中的bean id 該方法為”dogPet“ 屬性為property @Bean public Pet dogPet(){ return new Pet("tom"); } }
得到user和Pet的實體類
@SpringBootApplication public class MainApplication { public static void main(String[] args) { //SpringApplication.run(MainApplication.class); ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class); // String[] names = run.getBeanDefinitionNames(); // for(String name:names){ // System.out.println(name); // } User user01 = run.getBean("user01", User.class); System.out.println(user01.getName()); Pet dogPet = run.getBean("dogPet", Pet.class); System.out.println(dogPet.getName()); } }
運行結果如下:
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.6.RELEASE) 2021-05-09 10:45:08.692 INFO 15880 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2021-05-09 10:45:08.692 INFO 15880 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2021-05-09 10:45:09.136 INFO 15880 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2021-05-09 10:45:09.758 INFO 15880 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8888 (http) with context path '' 2021-05-09 10:45:09.786 INFO 15880 --- [ main] com.dashi.MainApplication : Started MainApplication in 4.501 seconds (JVM running for 7.13) zhangsan tom
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。