1. 程式人生 > 其它 >8. Spring 註解開發(原始註解)2

8. Spring 註解開發(原始註解)2

註解

說明

@Component

使用在類上用於例項化Bean

@Controller

使用在web層類上用於例項化Bean

@Service

使用在service層類上用於例項化Bean

@Repository

使用在dao層類上用於例項化Bean

@Autowired

使用在欄位上用於根據型別依賴注入

@Qualifier

結合@Autowired一起使用用於根據名稱進行依賴注入

@Resource

相當於@Autowired+@Qualifier,按照名稱進行注入

@Value

注入普通屬性

@Scope

標註Bean的作用範圍

@PostConstruct

使用在方法上標註該方法是Bean的初始化方法

@PreDestroy

使用在方法上標註該方法是Bean的銷燬方法

上面那篇文章說過如何用註解 例項化 Bean 和 注入引用資料型別

下面介紹其他幾個

1.value 進行普通引數的注入:

public class Demo {
    @Value("Hello,World!")
    private String parameter;
    @Test
    public void test(){
        System.out.println(parameter);
    }
}

這樣會輸出null 因為沒有Spring的參與 他是不會註解的。

我們嘗試弄一個Service + ServiceImpl 做實驗:【記得Spring配置檔案中配置掃描註解的標籤】

Service.java :

package com.Service;


public interface TestService {
    public void show();
}

ServiceImpl.java :

package com.ServiceImpl;

import com.Service.TestService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; @Service("service") public class TestServiceImpl implements TestService { @Value("HelloWorld!") //普通注入引數 private String parameter; @Override public void show() { System.out.println(parameter); } }

Demo.java  :

import com.ServiceImpl.TestServiceImpl;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Demo {
    @Test
    public void test(){
        ApplicationContext app = new ClassPathXmlApplicationContext("app.xml");
        TestServiceImpl bean = (TestServiceImpl) app.getBean("service");
        bean.show();
    }
}

列印:

資訊: Loading XML bean definitions from class path resource [app.xml]
HelloWorld!

那麼我們直接 String value = "HelloWorld" 不就完了了嗎 為什麼還要費那麼大力氣去用啊.

他還有個功能 比如 Spring匯入了一個properties 檔案 然後給Spring 配置檔案解析,然後我們可以在value註解中 ${} 直接獲取到 然後匯入。

自己去試試:

類似於:@Value("${name}")




然後:



然後:

後面那幾個自己去試試 即可 很好玩的

.