1. 程式人生 > 其它 >如何加速雲原生資料應用?這個開源專案備受關注

如何加速雲原生資料應用?這個開源專案備受關注

Spring部分

1.宣告bean的註解

@Component元件,沒有明確的角色

@Service在業務邏輯層使用(service層)

@Repository在資料訪問層使用(dao層)

@Controller在展現層使用,控制器的宣告(C)

2.注入bean的註解

@Autowired:由Spring提供

@Qualifier (與@Autowired搭配按名稱)

@Resource:由JSR-250提供

都可以註解在set方法和屬性上,推薦註解在屬性上(一目瞭然,少寫程式碼)。

3.java配置類相關注解

@Configuration聲明當前類為配置類,相當於xml形式的Spring配置(類上)

@Bean註解在方法上,聲明當前方法的返回值為一個bean,替代xml中的方式(方法上)

@Configuration聲明當前類為配置類,其中內部組合了@Component註解,表明這個類是一個bean(類上)

@ComponentScan用於對Component進行掃描,相當於xml中的(類上)

@WishlyConfiguration為@Configuration與@ComponentScan的組合註解,可以替代這兩個註解

4.切面(AOP)相關注解

Spring支援AspectJ的註解式切面程式設計。

@Aspect宣告一個切面(類上)
使用@After、@Before、@Around定義建言(advice),可直接將攔截規則(切點)作為引數。

@After在方法執行之後執行(方法上)
@Before在方法執行之前執行(方法上)
@Around在方法執行之前與之後執行(方法上)

@PointCut宣告切點
在java配置類中使用@EnableAspectJAutoProxy註解開啟Spring對AspectJ代理的支援(類上)

5.@Bean的屬性支援

@Scope設定Spring容器如何新建Bean例項(方法上,得有@Bean)
其設定型別包括:

Singleton (單例,一個Spring容器中只有一個bean例項,預設模式),
Protetype (每次呼叫新建一個bean),
Request (web專案中,給每個http request新建一個bean),
Session (web專案中,給每個http session新建一個bean),
GlobalSession(給每一個 global http session新建一個Bean例項)

@StepScope在Spring Batch中還有涉及

@PostConstruct由JSR-250提供,在建構函式執行完之後執行,等價於xml配置檔案中bean的initMethod

@PreDestory由JSR-250提供,在Bean銷燬之前執行,等價於xml配置檔案中bean的destroyMethod

6.@Value註解

@Value為屬性注入值(屬性上)
支援如下方式的注入:
》注入普通字元

  1. @Value("Michael Jackson")
  2. Stringname;

》注入作業系統屬性

  1. @Value("#{systemProperties['os.name']}")
  2. StringosName;

》注入表示式結果

  1. @Value("#{T(java.lang.Math).random() *100}")
  2. StringrandomNumber;

》注入其它bean屬性

  1. @Value("#{domeClass.name}")
  2. Stringname;

》注入檔案資源

  1. @Value("classpath:com/hgs/hello/test.txt")
  2. StringResource file;

》注入網站資源

  1. @Value("http://www.cznovel.com")
  2. Resource url;

》注入配置檔案

  1. @Value("${book.name}")
  2. StringbookName;

注入配置使用方法:
① 編寫配置檔案(test.properties)

book.name=《三體》

② @PropertySource 載入配置檔案(類上)

@PropertySource("classpath:com/hgs/hello/test/test.propertie")

③ 還需配置一個PropertySourcesPlaceholderConfigurer的bean。

7.環境切換

@Profile通過設定Environment的ActiveProfiles來設定當前context需要使用的配置環境。(類或方法上)

@ConditionalSpring4中可以使用此註解定義條件話的bean,通過實現Condition介面,並重寫matches方法,從而決定該bean是否被例項化。(方法上)

8.非同步相關

@EnableAsync配置類中,通過此註解開啟對非同步任務的支援,敘事性AsyncConfigurer介面(類上)

@Async在實際執行的bean方法使用該註解來申明其是一個非同步任務(方法上或類上所有的方法都將非同步,需要@EnableAsync開啟非同步任務)

9.定時任務相關

@EnableScheduling在配置類上使用,開啟計劃任務的支援(類上)

@Scheduled來申明這是一個任務,包括cron,fixDelay,fixRate等型別(方法上,需先開啟計劃任務的支援)

10.@Enable*註解說明

這些註解主要用來開啟對xxx的支援。
@EnableAspectJAutoProxy開啟對AspectJ自動代理的支援

@EnableAsync開啟非同步方法的支援

@EnableScheduling開啟計劃任務的支援

@EnableWebMvc開啟Web MVC的配置支援

@EnableConfigurationProperties開啟對@ConfigurationProperties註解配置Bean的支援

@EnableJpaRepositories開啟對SpringData JPA Repository的支援

@EnableTransactionManagement開啟註解式事務的支援

@EnableTransactionManagement開啟註解式事務的支援

@EnableCaching開啟註解式的快取支援

11.測試相關注解

@RunWith執行器,Spring中通常用於對JUnit的支援

@ContextConfiguration用來載入配置ApplicationContext,其中classes屬性用來載入配置類

  1. @RunWith(SpringJUnit4ClassRunner.class)
  2. @ContextConfiguration(classes={TestConfig.class})
  3. public class KjtTest {
  4. private static Logger logger = LoggerFactory.getLogger("KjtTest");
  5. @Autowired
  6. Service service;
  7. @Test
  8. public void test() {
  9. }
  10. }

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian
TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back