上一篇文章我們學習了使用註解開發,但還沒有完全脫離xml的配置,現在我們來學習JavaConfig配置來代替xml的配置,實現完全註解開發。 下麵我們用一個簡單的例子來進行學習。 一、首先建立兩個實體類 User: package com.jms.pojo; import org.springfra ...
上一篇文章我們學習了使用註解開發,但還沒有完全脫離xml的配置,現在我們來學習JavaConfig配置來代替xml的配置,實現完全註解開發。
下麵我們用一個簡單的例子來進行學習。
一、首先建立兩個實體類
User:
package com.jms.pojo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class User { @Value("jms") private String name; private Address address; public String getName() { return name; } public void setName(String name) { this.name = name; } public Address getAddress() { return address; } @Autowired public void setAddress(Address address) { this.address = address; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", address=" + address.toString() + '}'; } }
Address:
package com.jms.pojo; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class Address { @Override public String toString() { return "Address{" + "id=" + id + '}'; } @Value("100") private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } }
兩個簡單的類,並且實現了值的註入和Bean的自動裝配。
二、建立一個配置類
package com.jms.config; import com.jms.pojo.Address; import com.jms.pojo.User; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; //@Configuration代表他是一個配置類,可以看作原來的xml文件,它本身還是一個@Component,所以它也被註冊到Spring容器中,由Spring容器托管 @ComponentScan("com.jms.pojo") @Configuration public class JmsConfig { //這一個方法就相當於xml中的一個Bean標簽,方法名對應id屬性,返回值對應class屬性 @Bean public Address address() { return new Address(); } @Bean public User getUser() { return new User(); } }
這個配置類的作用就是代替原來的xml配置文件,所以xml文件中有的功能這裡基本上都可以配置。
上面只簡單配置了最基礎的Bean和ComponentScan掃描包。
三、測試
@Test public void test1() { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(JmsConfig.class); User user = applicationContext.getBean("getUser", User.class); System.out.println(user); }
註意點:
1.我們new的不再是ClassPathXmlApplicationContext對象,而是AnnotationConfigApplicationContext;
2.getBean方法中傳入的是配置類里的方法名,因為方法名對應原來xml里的id。
(本文僅作個人學習記錄用,如有紕漏敬請指正)