spring第二天反思与总结 作用在类上面使用component,但是根据分层思想, web层使用@controller service使用@service dao层使用repository 以上注解作用跟<bean>标签作用相同,都是用来在ioc中创建对象 依赖注入注解方式: autowired自动注入,如果ioc容器中有单一匹配的对象,就可以注入成功 如果ioc容器中有多个对象,需要使用Qualifier指定对象 的名字,注意的是,Qualifier 不可以单独使用,如果想要直接进行依赖注入,可以使用resource进行注入, resource可以单独使用 junit与spring整合: 首先改变junit的运行环境使用注解@RunWith(SpringJUnit4ClassRunner.classs 加载核心配置类使用注解:@ContextConfiguration(class=核心类名.class)(直接写,不是字符串的形式) 核心类编写: 先指定为该类为核心类,使用@Configuration 根据需要引入外部的propertis文件使用:@propertysourec("classpath:名称") 引入其他配置类使用@improt(类名.class) 定义包扫描:@componentScan("com.itheima") 如果给变量注入值,可以使用spring'的el表达式${}并且使用@value,只能对基本数据类型和String注入 @Bean("名字")标签作用是把当前方法的返回值以指定的名字存入到spring的ioc容器中 ----------------------------------------------- day03 对于动态代理的理解 jdk提供的 被代理类必须要实现一个接口 cglib提供的子类,不需要继承接口,但是被代理对象不能是最终类 基于标签配置aop 基于注解配置aop @Aspact 用于定义切面,通知与切面结合 5个注解 @Around环绕 手写逻辑 @before @ afterrunning @aftertrowing @ after @pointcut 用于定义切入点,也就是真正被增强的方法 ---------------------------------------------------- day04 spring声明式事务管理 xml配置 配置事务管理器 配置事务的通知引用事务管理器 配置事务的属性配置事务的属性 isolation:用于指定事务的隔离级别。默认值是DEFAULT,表示使用数据库的默认隔离级别。 propagation:用于指定事务的传播行为。默认值是REQUIRED,表示一定会有事务,增删改的选择。查询方法可以选择SUPPORTS。 read-only:用于指定事务是否只读。只有查询方法才能设置为true。默认值是false,表示读写。 timeout:用于指定事务的超时时间,默认值是-1,表示永不超时。如果指定了数值,以秒为单位。 rollback-for:用于指定一个异常,当产生该异常时,事务回滚,产生其他异常时,事务不回滚。没有默认值。表示任何异常都回滚。 no-rollback-for:用于指定一个异常,当产生该异常时,事务不回滚,产生其他异常时事务回滚。没有默认值。表示任何异常都回滚。 --> 在配置的时候,先进行对象的注入,在配置事务的时候,首先进行事务管理的声明, <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> 然后配置事务的引用通知的管理器 <tx:advice id ="txManger" transaction-manager="transactionManager"> 在里面配置管理的一些属性 <tx:attributes> <tx:method name="*" propagation="REQUIRED" read-only="false"/> <tx:method name="find*" propagation="SUPPORTS" read-only="true"/> </tx:attributes> </tx:advice> 配置切面 在切面中配置切入点,和切入点表达式和事务通知之间的关系 <!--配置aop切面--> <aop:config> <!--配置切入点--> <aop:pointcut id="pt1" expression="execution(* com.itheima.service.impl.*.*(..))"/> <!--建立切入点表达式与事务通知之间的关系--> <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"/> </aop:config> 基于注解配置spring中的事务 配置一个核心配置类 @Configuration @ComponentScan("com.itheima") @PropertySource(value = "jdbc.properties") @Import({JdbcConfig.class,TransactionManager.class}) @EnableTransactionManagement public class SpringConfiguration { } 配置开启事务管理声明 public class TransactionManager { /* *开启spring的事务管理器 * */ @Bean("transactionManager") public PlatformTransactionManager creatTransactionManager(DataSource dataSource ){ return new DataSourceTransactionManager(dataSource); } } 配置jdbc文件类 public class JdbcConfig { @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("jdbcTemplate") public JdbcTemplate creatTemplate(DataSource dataSource) { return new JdbcTemplate(); } @Bean("dataSource") public DataSource creatDataSource() { DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setDriverClassName(driver); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); return ds; }
Spring手记
猜你喜欢
转载自www.cnblogs.com/aniymx/p/9971370.html
今日推荐
周排行