Spring 的纯注解配置

知道每个注解的意思:

|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 注解 | 说明 |
| @Configuration | 用于指定当前类是一个 Spring 配置类,当创建容器时会从该类上加载注解,作用等价于applicationContext.xml 配置文件。 |
| @ComponentScan | 用于指定 Spring在初始化容器时要扫描的包。 作用和在 Spring 的 xml 配置文件中的 <context:component-scan base-package="com.sy"/>一样 |
| @Bean | 使用在方法上,标注将该方法的返回值存储到 Spring容器中。 id的值默认是方法的明名称,可以自定义id的值 |
| @PropertySource | 用于加载xxx.properties 文件中的配置结合 @Value("${}") 取配置文件的值。作用类似于:<context:property-placeholder location="classpath:db.properties"></context:property-placeholder> |
| @Import | 用于导入其他配置类 |

定义一个配置类:SpringConfig

java 复制代码
/*普通类变成配置类 需要在类上添加@Configuration*/

/*配置类注解*/ /*这个类是配置类*/
@Configuration
/*包扫描注解   <context:component-scan base-package="com.study"></context:component-scan>*/
@ComponentScan(basePackages = "com.study")
/*导入其他配置类*/
@Import(DataSourceConfig.class)
public class SpringConfig {
}

数据库连接信息配置类:DataSourceConfig

java 复制代码
/*
* 数据库连接信息配置类
* */
//加载配置文件
@PropertySource("classpath:db.properties")
public class DataSourceConfig {

    /*
    *   <property name="driverClass" value="${jdbc.driver}"></property>
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="user" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>*/
    @Value("${jdbc.driver}")
    private String driver;

    @Value("${jdbc.url}")
    private String url;

    @Value("${jdbc.username}")
    private String username;

    @Value("${jdbc.password}")
    private String password;

    /*配置数据源对象*/
    @Bean
    public DataSource dataSource() throws Exception {
        /*创建数据库连接池*/
        ComboPooledDataSource source = new ComboPooledDataSource();
        /*把文件赋予变量的值  赋到连接池的属性中*/
        source.setDriverClass(driver);
        source.setJdbcUrl(url);
        source.setUser(username);
        source.setPassword(password);
        return source;
    }

    /*
    *           <!--配置jdbcTemplate模板对象-->
        <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
            <!--将数据源交给jdbcTemplate模板对象-->
            <property name="dataSource" ref="dataSource"></property>
        </bean>*/
    @Bean
    public JdbcTemplate jdbcTemplate(@Autowired @Qualifier("dataSource") DataSource dataSource){
        /*它是一个数据访问抽象层,为使用JDBC进行数据库操作提供了便利*/
        return new JdbcTemplate(dataSource);
    }
}

持久层:

java 复制代码
@Repository("accountDao")
public class AccountDaoImpl implements AccountDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /*
    *查询全部账户信息
    * */
    @Override
    public List<Account> findAllAccounts() {
        String sql="select * from account";
        return jdbcTemplate.query(sql,new BeanPropertyRowMapper<Account>(Account.class));
    }
}
业务层:
java 复制代码
@Service("accountService")
public class AccountServiceImpl implements AccountService {
    @Autowired
    private AccountDao accountDao;

    @Override
    public List<Account> findAllAccounts() {
        return accountDao.findAllAccounts();
    }
}

方法测试可以用spring 和junit整合:

java 复制代码
/*将 Spring 和 Junit 链接了起来*/
@RunWith(SpringJUnit4ClassRunner.class)
/*配置类*/
@ContextConfiguration(classes = SpringConfig.class)
public class AccountController {
    /*实例化对象*/
    @Autowired
    private AccountService accountService;

    @Test
    public void findAllAccountsTests(){
        List<Account> accounts = accountService.findAllAccounts();
        for (Account account : accounts) {
            System.out.println(account);
        }
    }
}
相关推荐
Rust研习社2 小时前
Rust 堆内存指针 Box 详解
开发语言·后端·rust
XDHCOM2 小时前
ORA-06722: TLI Driver连接失败,Oracle报错修复对比远程处理,选择最佳解决方案
数据库·oracle
ffqws_2 小时前
Spring Boot:用JWT令牌和拦截器实现登录认证(含测试过程和关键注解讲解)
java·spring boot·后端
小红的布丁2 小时前
Redis 集群详解:主从哨兵和切片集群有什么区别
前端·数据库·redis
liulilittle2 小时前
Lua 浮点数比较
开发语言·junit·lua
杰克尼2 小时前
redis(day08-Redis原理篇)
数据库·redis·php
余佬学数据库2 小时前
Oracle 19c RECOVER TABLE 恢复误删除数据
数据库·oracle
小兔崽子去哪了2 小时前
华为 IODT 设备接入
java·华为
Dream of maid2 小时前
Mysql(6)关联查询
数据库·mysql