Spring的基礎註解

Spring的基礎註解

 

 

  一、註解的概述spring

  

  註解是爲了便於程序的調試而用於代替配置文件的一種程序語法,與配置文件具備互換性。一般基於註解編程的程序更加簡潔。編程

  (注:使用Spring註解必須導入aop包)框架

 

 

  二、Spring組件註解工具

  

  Spring組件註解做用在類上,用於聲明該類爲組件類。在Spring 框架啓動時,自動掃描組件類建立實例對象並存放在Spring容器中。Spring的組件註解有單元測試

  

  ①@Controller聲明表示層的組件類;            ②@Service聲明服務層的組件類;測試

  

  ③@Repository:聲明持久層的組件類;           ④@Component聲明其它的組件類。ui

  

  (注:①Spring的4個組件註解在功能上是沒有差異的,交換使用結果相同;②組件類的對象名默認爲類名的首字母小寫形式,組件註解的value屬性能夠設置對象名)this

 

 

  三、<context:component-scan>標籤——掃描器的配置編碼

  ——base-package屬性:指定須要掃描的包。spa

<context:component-scan base-package="cn"/>

 

  (注:使用該標籤須要在Spring 配置文件中導入context名稱空間下的約束)

 

 

  四、Spring依賴注入的註解

  

  (1)@Autowired註解——自動注入容器的對象

  ①在屬性上注入:注入該屬性;         ②在方法上注入:注入該方法的參數;        ③在構造方法上注入:注入該構造方法的參數;

  (注:①@Autowired 註解默認容許注入的對象爲空,能夠經過equired屬性設置;②添加@Autowired 註解的方法和構造方法在項目啓動的時候將自動執行;③無參的方法和構造方法不支持使用@Autowired註解)

 

  (2)@Qualifier註解——設置注入的對象名

  ——value屬性:指定注入 Spring 容器中的對象名;

  (注:@Autowired沒有指定對象名的屬性,只能經過@Qualifier註解指定容器中的對象名)

  

  (3)@Resource註解——注入容器的對象

  ——name屬性:指定注入 Spring 容器中的對象名;

  (注:①@Resource註解在功能上是@Autowired和@Qualifier註解的合併註解;②@Resource不能在構造方法上注入)

  

  (4)@Value註解——注入標量數據

  ——@Value註解用於注入標量數據,並支持注入Properties文件的鍵值對。

 

 public class Manager {

      @Value("zhangsan")
      private String name;

      @Value("${manager.age}")
      private int age;

      @Autowired
      @Qualifier(value="customer01")
      private Customer customer = null;

   

      @Autowired(required=false)
      public Manager(Customer customer) {
           super();
           this.customer = customer;
      }

   

      @Resource(name="customer01")
      public void saveCustomer(Customer customer) {
           this.customer = customer;
      }

}
 
 
 
  五、Spring對象的生命週期註解

  ①@Scope註解——指定示例對象的生命週期

  ——value屬性:設置建立的Spring對象的生命週期;

 

  ②@PostConstruct註解——指定Spring對象的初始化方法;

 

  ③@PreDestroy註解——指定Spring對象的銷燬方法。

  

@Service
@Scope(value="singleton")
public class CustomerService {

  @PostConstruct
  public void init(){
    System.out.println("--對象初始化--");
  }
 

  @PreDestroy
  public void destroy(){
    System.out.println("--對象銷燬--");
  }
}
 
 
 

  六、Spring純註解配置

  

  ①@Configuration註解

  該註解標示當前類是Spring 的配置類,該類用於代替Spring的XML配置文件;

 

  ②@ComponentScan註解

  該註解用於配置掃描Spring組件類的路徑;

  ——value/basePackages屬性:用於指定要掃描的包;

 

  ③@PropertySource註解

  該註解用於配置須要加載的Properties文件;

  ——encoding屬性:指定編碼格式;

  ——value屬性:指定 properties 文件位置;

 

  ④@Bean註解

  該註解用於將經過方法建立的對象存放在Spring容器中;

  ——name屬性:設置對象名;

 

  ⑤@Import註解

  該註解用於導入其餘配置類;

  ——value屬性:指定配置類。

  

@Configuration
@ComponentScan(basePackages="cn")
@Import(value=Config.class)
@PropertySource(encoding="UTF-8",value="classpath:sys.properties")
public class Myconfiguration {
 

        @Bean
        public Date getDate() {
             return new Date();
        }

}
 

  (注:①基於純註解聲明的對象將存放在AnnotationConfigApplicationContext容器中②在須要指定文件的路徑時,當文件在類路徑下時其路徑爲「classpath:[文件名]」)

 

 

  七、獲取Spring註解容器的對象

 
 
 @Test
 public void springTest() {

      //一、建立spring容器
       AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Myconfiguration.class);

           //二、獲取Customer實例對象
         Customer customer= context.getBean("customer", Customer.class);

         customer.save();     //三、調用對象的方法

         context.close();      //四、關閉Spring容器,釋放資源

}

 

 

  八、Spring整合Junit

  

  Junit是單元測試工具,Spring 框架提供test包對 Junit 單元測試工具進行了整合。

 

  ①@RunWith註解

  ——value屬性:指定使用的單元測試執行類;

 

  ②@ContextConfiguration註解

  ——classes屬性:指定配置類。

 

      @RunWith(SpringJUnit4ClassRunner.class)
      @ContextConfiguration(classes=Myconfiguration.class)
      public class SpringTest{

           @Autowired
        private Customer customer;

        @Text
        public void springTest() {
      customer.save();
        }

   }

 

 

 

 

 

———————————————————————————————————————————————————————————————————

The end  @  萬有引力+

-

-

-

-

-

相關文章
相關標籤/搜索