1. 程式人生 > >spring筆記2-註解

spring筆記2-註解

pooled ace val autowired [] xmlns quest repo 數據庫

一.屬性與成員變量的區別:
屬性:對外暴露的,getxxx/setxxx稱為屬性;
成員變量:private String name稱為成員變量或字段

二.applicationContext.xml的書寫
<!--約束-->
<beans xmlns:context="http://www.springframework.org/schema/context"
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
</beans>

<!--在spring的配置文件中開啟spring對註解ioc的支持,指定spring初始化時要掃描的包—>
<context:component-scan base-package="com.itheima"></context:component-scan>

<!--讀取數據庫配置文件—>
<context:property-placeholder location="classpath:db.properties"/>
<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>


三.註解釋義
@component:把資源讓spring來管理。相當於在xml中配置一個bean。如果不指定value屬性,默認bean的id是當前類的類名。首字母小寫。
@Controller:一般用於表現層的註解。
@Service:一般用於業務層的註解
@Repository :一般用於持久層的註解
細節:如果註解中有且只有一個屬性要賦值時,且名稱是value,value在賦值是可以不寫。

@Autowired:
作用:自動按照類型註入。
當使用註解註入屬性時,set方法可以省略。它只能註入其他bean類型。當有多個類型匹配時,使用要註入的對象變量名稱作為bean的id,在spring容器查找,找到了也可以註入成功。找不到就報錯。

@Qualifier:在自動按照類型註入的基礎之上,再按照Bean的id註入。它在給字段註入時不能獨立使用,必須和@Autowire一起使用;但是給方法參數註入時,可以獨立使用。

@Resource:直接按照Bean的id註入。它也只能註入其他bean類型。

@Value:註入基本數據類型和String類型數據的

@Scope:指定bean的作用範圍。value:指定範圍的值。取值:singleton prototype request session globalsession

@PostConstruct:用於指定初始化方法。

@PreDestroy:用於指定銷毀方法

@Configuration:用於指定當前類是一個配置類,會從該類上加載註解。讀取該類上@ ComponentScan註解初始化spring容器。

@ComponentScan:用於指定spring在初始化容器時要掃描的包,(xml中需要basePackages屬性,用於指定要掃描的包)。和該註解中的value屬性作用一樣。

@PropertySource:用於加載.properties文件中的配置,value[]:用於指定properties文件位置。如果是在類路徑下,需要寫上classpath:

@Import:用於導入其他配置類,value[]:用於指定其他配置類的字節碼。

@Bean:該註解只能寫在方法上,表明使用此方法創建一個對象,並且交給spring管理。name:給當前@Bean註解方法創建的對象指定一個名稱(即bean的id)。

@RunWith註解替換原有運行器;@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration指定spring配置文件的位置;@ContextConfiguration(locations={"classpath:bean.xml"})

spring筆記2-註解