經過註解模式 裝載Bean 和 Spring Boot一些註解

Mybatis 在配置Mybatis 的datasource 和sessionFactoryjava

org.springframework.jdbc.datasource.DriverManagerDataSourcegit

org.mybatis.spring.SqlSessionFactoryBeangithub

以後要使用接口調用xml裏的sql語句 還需申明 Mybatis的Mapper掃描包以及 sessionfactoryspring

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 掃描本包下面的MapperDao(接口)託管給Spring IOC -->
		<property name="basePackage" value="com.zx.Dao"></property>
		<property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>
	</bean>

這樣 就能夠直接經過@Autowired 將對應的Mapper接口租入使用sql

附上幾個註解的解釋 和用法session

@Repository註解:用於標註數據訪問組件,即DAO組件
@Service註解:用於標註業務層組件
@Controller註解:用於標註控制層組件(如struts中的action)
@Component註解:泛指組件,當組件很差歸類的時候,咱們能夠使用這個註解進行標註。

@Controllermybatis

@Controller("Bean的名稱")app

定義控制層Bean,如Actionui

 

@Service          .net

@Service("Bean的名稱")

定義業務層Bean

 

@Repository   

@Repository("Bean的名稱")

定義DAO層Bean

 

@Component  

定義Bean, 很差歸類時使用.

 

--自動裝配Bean (選用一種註解就能夠)

@Autowired  (Srping提供的)

默認按類型匹配,自動裝配(Srping提供的),能夠寫在成員屬性上,或寫在setter方法上

 

@Autowired(required=true)  

必定要找到匹配的Bean,不然拋異常。 默認值就是true 

 

@Autowired

@Qualifier("bean的名字") 

按名稱裝配Bean,與@Autowired組合使用,解決按類型匹配找到多個Bean問題。

 

@Resource   JSR-250提供的

默認按名稱裝配,當找不到名稱匹配的bean再按類型裝配.

能夠寫在成員屬性上,或寫在setter方法上

能夠經過@Resource(name="beanName") 指定被注入的bean的名稱, 要是未指定name屬性, 默認使用成員屬性的變量名,通常不用寫name屬性.

@Resource(name="beanName")指定了name屬性,按名稱注入但沒找到bean, 就不會再按類型裝配了.

 

@Inject   是JSR-330提供的

按類型裝配,功能比@Autowired少,沒有使用的必要。

 

--定義Bean的做用域和生命過程

@Scope("prototype")

值有:singleton,prototype,session,request,session,globalSession

 

@PostConstruct 

至關於init-method,使用在方法上,當Bean初始化時執行。

 

@PreDestroy 

至關於destory-method,使用在方法上,當Bean銷燬時執行。

 

--聲明式事務

@Transactional  

 

關於Spring Boot 經過註解註冊託管Bean的時候 他默認掃描的是入口類Application.class的同包下的類

若是Application類所在的包爲:io.github.gefangshuai.app,則只會掃描io.github.gefangshuai.app包及其全部子包,若是service或dao所在包不在io.github.gefangshuai.app及其子包下,則不會被掃描!

也就是不會註冊成爲Bean經過自動注入註解注入的時候就會出錯

這個時候 咱們須要用

@ComponentScan(basePackages={"com.zx"})

手動設置掃描的包 而後就會找到該包下面全部申明爲Bean的類 進入IOC託管

相關文章
相關標籤/搜索