1. 程式人生 > 遊戲 >E3 2021:全平臺《吸血鬼:避世血族-絕唱》釋出預告

E3 2021:全平臺《吸血鬼:避世血族-絕唱》釋出預告

開啟註解驅動

<?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註解的作用是什麼?

  • 匯入一個配置類