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);
        }
    }
}
相关推荐
lld9510273 小时前
我做了一个 AI Agent Skill 云:用 MCP 在 Claude Code、Codex、OpenCode 之间同步技能
数据库·人工智能
沫离痕3 小时前
Cassandra 4.0.11 Docker 安装与配置手册
java·spring boot
plainGeekDev3 小时前
libs 目录 → Gradle 依赖管理
android·java·kotlin
不能放弃治疗3 小时前
rule 和 skill
后端
ADIT3 小时前
一、反射的定义与原理
后端
CodeStride3 小时前
就像长跑配速一样,我是如何平衡代码性能与可读性的
java
弹简特4 小时前
【Java项目-企悦抽】07-用户与认证模块-实现用户注册01
java·开发语言
L歪歪君4 小时前
Apache Doris全链路性能优化实战指南:从架构设计到生产落地
java·开发语言·算法
Csvn4 小时前
Python 开发技巧:标准库深度挖掘
后端·python