中國大學慕課 大連理工大學 C語言程式設計 第7周 函式的定義及呼叫
阿新 • • 發佈:2021-05-31
開啟註解驅動
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--開啟註解驅動--> <context:component-scan base-package="com.asaawan"/> </beans>
整合第三方技術
JdbcConfiguration 配置
public class JdbcConfiguration { @Value("${jdbc.driverClass}") private String driverClassName; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean("dataSource") public DataSource createDataSource(){ System.out.println(driverClassName); DruidDataSource source = new DruidDataSource(); source.setDriverClassName(driverClassName); source.setUrl(url); source.setUsername(username); source.setPassword(password); return source; } }
MyBatisConfiguration 配置
public class MyBatisConfiguration { @Bean public SqlSessionFactoryBean getSqlSessionFactoryBean(@Autowired DataSource dataSource) { SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean(); ssfb.setDataSource(dataSource); ssfb.setTypeAliasesPackage("com.asaawan.domain"); return ssfb; } @Bean public MapperScannerConfigurer getMapperScannerConfigurer(){ MapperScannerConfigurer msc = new MapperScannerConfigurer(); msc.setBasePackage("com.asaawan.mapper"); return msc; } }
SpringConfiguration 配置
@Configuration
@ComponentScan("com.asaawan")
@PropertySource(value = {"classpath:jdbc.properties"},ignoreResourceNotFound = true)
@Import({JdbcConfiguration.class, MyBatisConfiguration.class})
public class SpringConfiguration {
}
測試類
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
public class AccountServiceTest {
@Autowired
private AccountService service;
@Test
public void testFindAll(){
Account account = service.findById(1);
System.out.println(account.getUserName());
Assert.assertEquals("zsf",account.getUserName());
}
}
業務使用
public class App {
public static void main(String[] args) {
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
AccountService service = (AccountService) ctx.getBean("accountService");
List<Account> accounts = service.findAll();
accounts.forEach(System.out::println);
}
}
bean 常用註解
宣告一個bean可以使用哪些註解?
- @Component
- @Controller
- @Service
- @Repository
定義bean的作用域使用哪個註解?
- @Scope
- singleton
- prototype
使用哪個註解配置第三方資源?
- @Bean
注入非引用資料型別使用哪個註解?
- @Value
注入引用資料型別可以使用哪個註解並且它們的特點是啥?
- @Autowired
- @Autowired 預設按型別裝配,指定 @Qualifier 後可以指定自動裝配的 bean 的 id
- @Resource
- 按照名稱進行注入
通過那個註解來載入外部的屬性檔案?
- @PropertySource
@Configuration註解有什麼作用?
- 宣告某一個類是一個配置類
@ComponentScan註解有什麼作用?
- 宣告Spring所掃描的的bean所在的包
@Import註解的作用是什麼?
- 匯入一個配置類