标签: IOC

Spring IOC 的 alias 正确用法

Spring IOC 的 alias 有些人甚至都没听过,即使听过,也未必知道它真正的用途。定义 Bean 的时候,id 必须是唯一的,要保证在整个IOC容器内的唯一性,name 可以重复,并且可以指定多个,用逗号分隔。获取bean的时候用 id 或 name都可以。示例:applicationContext.getBean("defaultMessageService", MessageService.class);很多人对 alias 的了解仅限于此,下面说一下它真正的用途。例如有一个工程A,代码如下public interface MessageService { void send(); void send(String content);}

Spring IOC 容器启动时候初始化sql脚本Spring Boot版

之前没用 Spring Boot 的时候用 jdbc:script 标签设置初始化 sql 脚本,如下<jdbc:initialize-database data-source="dataSource" enabled="true" ignore-failures="NONE"> <jdbc:script execution="INIT" encoding="utf-8" location="classpath:sql/prod-data.sql" /> <jdbc:script execution="INIT" encoding="utf-8" location="classpath:sql/dev-data.sql" /></jdbc:initialize-database>

Spring IOC 容器启动时候初始化sql脚本

先说一下背景,项目中每个人都承担了一些模块的开发工作,而这些模块之间耦合性又比较大。例如,A的功能需要从B和C的模块获取数据。因此我们设计了一个数据导入功能,每个人开发完自己的功能模块后,把测试用的数据写入sql脚本,这样其他人更新了代码后,执行导入就可以用别人的模块了。配置如下,测试环境使用h2数据库并在IOC容器启动的时候初始化一些数据<beans profile="test"> <context:property-placeholder location="classpath:config-global.properties,classpath:config-env-test.properties" file-encoding="UTF-8" /> <jdbc:embedded-database id="dataSource" type="H2"> <jdbc:script execution="INIT" encoding="utf-8" location="classpath:sql/prod-data.sql" /> <jdbc:script execution="INIT" encoding="utf-8" location="classpath:sql/dev-data.sql" /> </jdbc:embedded-database></beans>