SSI开发:applicationContext-common.xml标准配置模板

本文详细介绍了Spring框架的核心配置方法,包括自动扫描组件、事务管理、缓存支持等内容,并提供了具体的XML配置示例。

<!-- 自动搜索@Component , @Service , @Repository等标注的类 ,不搜索@Controller的类 ,@Controller的类在mvc.xml中搜索-->
<!-- 自动扫描组件,这里要把web下面的 controller去除,他们是在spring3-servlet.xml中配置的,如果不去除会影响事务管理的。 -->
<context:component-scan base-package="custom define package" annotation-config="true">
<context:exclude-filter type="annotation"
  expression="org.springframework.stereotype.Controller" />
</context:component-scan>

<!-- enable autowire -->
<context:annotation-config />

<aop:aspectj-autoproxy proxy-target-class="true"/>

<!-- 启用缓存注解功能 -->
<cache:annotation-driven cache-manager="cacheManager"/>

<!-- define the SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="c3p0" />
  <!-- ORM映射文件 -->
  <!-- 自定义mybatis-config.xml -->
  <property name="configLocation" value="classpath:/ibatis/mybatis-config.xml" />
</bean>

<!-- sqlMapper与Mapper.xml映射 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
   <!-- ORM映射文件具体位置:eg:com/prjname/dao.ibatis/sqlMapper -->
   <property name="basePackage" value="com/prjname/dao.ibatis/sqlMapper" />
</bean>

<!-- ================================配置事务相关控制================================================= -->
<!-- 数据库连接池 -->
<!-- eg:/WEB-INF/springspring-pool.xml -->
<import resource="classpath:/spring/spring-pool.xml" />
<!-- 事务管理器 -->
<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="c3p0"></property>
</bean>

<!-- 配置事务特性 -->
<tx:advice id="transactionAdvice" transaction-manager="transactionManager">
 <tx:attributes>
  <tx:method name="delete*" propagation="REQUIRED" read-only="false"
   rollback-for="java.lang.Exception" />
  <tx:method name="insert*" propagation="REQUIRED" read-only="false"
   rollback-for="java.lang.Exception" />
  <tx:method name="update*" propagation="REQUIRED" read-only="false"
   rollback-for="java.lang.Exception" />
  <tx:method name="modify*" propagation="REQUIRED" read-only="false"
   rollback-for="java.lang.Exception" />
  <tx:method name="*" propagation="SUPPORTS" read-only="true" />
 </tx:attributes>
</tx:advice>

<!-- 配置AOP切面 哪些类的方法需要进行事务管理 -->
<aop:config>
 <!--把事务控制在Service层 -->
 <!-- eg:exceution( public * com.prjname.service.. * ) -->
 <aop:pointcut id="allManagerMethod" expression="execution(public * com.prjname.service..*.*(..))" />
 <aop:advisor pointcut-ref="allManagerMethod" advice-ref="transactionAdvice" />
</aop:config>

<!-- service层的属性和配置文件读入 ,多个用逗号隔开 -->
<!-- controller层的属性和配置文件读入 ,多个用逗号隔开 -->
<context:property-placeholder
  location="classpath:/ibatis/jdbc.properties" />

<!-- cacheManager工厂类 -->
<bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
  p:configLocation="classpath:/cache/ehcache.xml" />
 
<!-- 声明cacheManager -->
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"
  p:cacheManager-ref="cacheManagerFactory"/>

行 137995: 09-18 09:52:32.972 root 2028 2028 I update_engine: type: new_update 行 137996: 09-18 09:52:32.972 root 2028 2028 I update_engine: version: 行 137997: 09-18 09:52:32.972 root 2028 2028 I update_engine: source_slot: A 行 137998: 09-18 09:52:32.972 root 2028 2028 I update_engine: target_slot: B 行 137999: 09-18 09:52:32.972 root 2028 2028 I update_engine: initial url: /storage/emulated/0/Download/flame-ota_incremental-OS3.0.250915.1.WGUCNXM.STABLE-SSI-OS3.0.250917.1.WGUCNXM.STABLE-SSI-user-16.0-016342ab2d.zip 行 138000: 09-18 09:52:32.972 root 2028 2028 I update_engine: hash_checks_mandatory: true 行 138001: 09-18 09:52:32.972 root 2028 2028 I update_engine: powerwash_required: false 行 138002: 09-18 09:52:32.972 root 2028 2028 I update_engine: switch_slot_on_reboot: true 行 138003: 09-18 09:52:32.972 root 2028 2028 I update_engine: run_post_install: true 行 138004: 09-18 09:52:32.972 root 2028 2028 I update_engine: write_verity: true 行 138005: 09-18 09:52:32.972 root 2028 2028 I update_engine: Payload: 0 行 138006: 09-18 09:52:32.972 root 2028 2028 I update_engine: urls: () 行 138007: 09-18 09:52:32.972 root 2028 2028 I update_engine: size: 238789346 行 138008: 09-18 09:52:32.972 root 2028 2028 I update_engine: metadata_size: 5180000 行 138009: 09-18 09:52:32.972 root 2028 2028 I update_engine: metadata_signature: 行 138010: 09-18 09:52:32.972 root 2028 2028 I update_engine: hash: 634C6A718C22A31B4C607AFD2359FF6B84BE6B3C4AC2FA3CB8BEB6A29C0A2AC9 行 138011: 09-18 09:52:32.972 root 2028 2028 I update_engine: type: unknown 行 138012: 09-18 09:52:32.972 root 2028 2028 I update_engine: fingerprint: 行 138013: 09-18 09:52:32.972 root 2028 2028 I update_engine: app_id: 行 138014: 09-18 09:52:32.972 root 2028 2028 I update_engine: already_applied: false 行 138015: 09-18 09:52:32.973 root 2028 2028 I update_engine: [INFO:dynamic_partition_control_android.cc(1006)] SnapshotManager initialized. 行 138016: 09-18 09:52:32.978 root 2028 2028 I update_engine: [INFO:postinstall_runner_action.cc(94)] postinstall mount point: /postinstall 行 138019: 09-18 09:52:32.988 root 2028 2028 I update_engine: [INFO:metrics_utils.cc(330)] Number of Reboots during current update attempt = 0 行 138020: 09-18 09:52:32.998 root 2028 2028 I update_engine: [INFO:metrics_utils.cc(338)] Payload Attempt Number = 1 行 138021: 09-18 09:52:33.011 root 2028 2028 I update_engine: [INFO:metrics_utils.cc(355)] Update Monotonic Timestamp Start = 1/1/1970 0:24:06 GMT 行 138022: 09-18 09:52:33.026 root 2028 2028 I update_engine: [INFO:metrics_utils.cc(364)] Update Boot Timestamp Start = 1/1/1970 0:24:06 GMT 行 138023: 09-18 09:52:33.029 root 2028 2028 I update_engine: [INFO:update_attempter_android.cc(1017)] Clearing update complete marker. 行 138024: 09-18 09:52:33.032 root 2028 2028 I update_engine: [INFO:update_attempter_android.cc(896)] Scheduling an action processor start. 行 138025: 09-18 09:52:33.037 root 2028 2028 I update_engine: [INFO:action_processor.cc(51)] ActionProcessor: starting UpdateBootFlagsAction 行 138026: 09-18 09:52:33.039 root 2028 2028 I update_engine: [INFO:update_boot_flags_action.cc(45)] Marking booted slot as good. 行 138030: 09-18 09:52:33.224 root 2028 2028 I update_engine: [INFO:action_processor.cc(116)] ActionProcessor: finished UpdateBootFlagsAction with code ErrorCode::kSuccess 行 138033: 09-18 09:52:33.226 root 2028 2028 I update_engine: [INFO:action_processor.cc(143)] ActionProcessor: starting CleanupPreviousUpdateAction 行 138034: 09-18 09:52:33.228 root 2028 2028 I update_engine: [INFO:cleanup_previous_update_action.cc(154)] Starting/resuming CleanupPreviousUpdateAction 行 138035: 09-18 09:52:33.230 root 2028 2028 I update_engine: [INFO:cleanup_previous_update_action.cc(195)] Boot completed, waiting on markBootSuccessful() 行 138036: 09-18 09:52:33.240 root 2028 2028 I update_engine: [INFO:snapshot.cpp(4145)] EnsureMetadataMounted does nothing in Android mode. 行 138037: 09-18 09:52:33.243 root 2028 2028 I update_engine: [INFO:snapshot_stats.cpp(40)] Read merge statistics file failed: No such file or directory 行 138038: 09-18 09:52:33.251 root 2028 2028 I update_engine: [INFO:cleanup_previous_update_action.cc(294)] Waiting for any previous merge request to complete. This can take up to several minutes. 行 138039: 09-18 09:52:33.254 root 2028 2028 I update_engine: [INFO:snapshot.cpp(1190)] CheckMergeState for snapshots returned: None 行 138040: 09-18 09:52:33.256 root 2028 2028 I update_engine: [INFO:snapshot.cpp(1155)] ProcessUpdateState handling state: None 行 138041: 09-18 09:52:33.259 root 2028 2028 I update_engine: [INFO:cleanup_previous_update_action.cc(331)] Can't find any snapshot to merge. 行 138042: 09-18 09:52:33.261 root 2028 2028 I update_engine: [INFO:snapshot.cpp(247)] Cancelling update from state: 0 行 138043: 09-18 09:52:33.263 root 2028 2028 I update_engine: [INFO:snapshot.cpp(352)] Removing all update state. 行 138044: 09-18 09:52:33.281 root 2028 2028 I update_engine: [INFO:cleanup_previous_update_action.cc(136)] Stopping/suspending/completing CleanupPreviousUpdateAction 行 138045: 09-18 09:52:33.284 root 2028 2028 I update_engine: [INFO:cleanup_previous_update_action.cc(520)] Not reporting merge stats because state is None 行 138046: 09-18 09:52:33.286 root 2028 2028 I update_engine: [INFO:cleanup_previous_update_action.cc(136)] Stopping/suspending/completing CleanupPreviousUpdateAction 行 138047: 09-18 09:52:33.288 root 2028 2028 I update_engine: [INFO:action_processor.cc(116)] ActionProcessor: finished CleanupPreviousUpdateAction with code ErrorCode::kSuccess 行 138048: 09-18 09:52:33.289 root 2028 2028 I update_engine: [INFO:action_processor.cc(143)] ActionProcessor: starting InstallPlanAction 行 138049: 09-18 09:52:33.291 root 2028 2028 I update_engine: [INFO:action_processor.cc(116)] ActionProcessor: finished InstallPlanAction with code ErrorCode::kSuccess 行 138050: 09-18 09:52:33.293 root 2028 2028 I update_engine: [INFO:action_processor.cc(143)] ActionProcessor: starting DownloadAction 行 138051: 09-18 09:52:33.295 root 2028 2028 I update_engine: [INFO:install_plan.cc(79)] InstallPlan:
最新发布
09-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值