Spring常用注解-新(Spring2.5规范以上)

mac2024-08-03  57

SpringMVC学习记录文章目录: 1、程序的耦合和解耦思路 2、使用springIOC解决程序耦合的前期准备 3、BeanFactory和ApplicationContext的区别及ApplicationContext接口的实现类 4、bean标签及其实例化的3种方式 5、bean的作用范围和生命周期 6、Spring的依赖注入 7、基于注解的IOC环境搭建 8、基于注解的IOC-常用注解(Spring2.5规范) 9、Spring常用注解-新(Spring2.5规范以上) 10、Spring整合Junit单元测试 11、AOP的相关概念 12、Spring中AOP的术语 13、SpringAOP常用标签解释说明 14、SpringAOP中切入点表达式说明 15、SpringAOP类型说明及环绕通知的特殊说明 16、基于xml的SpringAOP配置 17、SpringAOP常用注解 18、基于注解的SpringAOP配置 19、Spring中的JdbcTemplate 20、Spring中的事务控制

首先我们先引入一个问题,如何把xml配置文件“干掉”? 这个是时候就要用到新的注解,但是也要创建一个类,这个类的作用相当于xml配置文件,也就是spring配置类。

@Configuration

作用:用于指定当前类是一个spring配置类,当创建容器时会从该类上加载注解。获取容器时需要使用AnnotationApplicationContext(有@Configuration注解的类.class)。 属性:

value:用于指定配置类的字节码 示例代码: /** * 用于初始化spring容器的配置类 */ @Configuration public class SpringConfiguration{ }

@ComponentScan

作用:用于指定spring在初始化容器时要扫描的包。作用和在spring的xml配置文件中的: <context:component-scan base-package="com"/>是一样的。 属性:

basePackages:用于指定要扫描的包。和该注解中的value属性作用一样。 @Configuration @ComponentScan("com") public class SpringConfiguration{ }

@Bean

作用:该注解只能写在方法上,表明使用此方法创建一个对象,并且放入spring容器。它就相当于我们之前在xml配置中介绍的factory-bean和factory-method。

属性:

name:用于指定bean的id 默认值:方法的名称

代码示例:

@Bean(name = "datasource2") public DataSource createDS() throws Exception { ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource(); comboPooledDataSource.setUser("root"); comboPooledDataSource.setPassword("123456"); comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver"); comboPooledDataSource.setJdbcUrl("jdbc:mysql:///spring_ioc"); return comboPooledDataSource; }

@import

作用:用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration注解。写上也没问题。

属性:

value[]:用于指定其他配置类的字节码。

特点:

当只需要用类里面方法的返回值是可以用,如果要调用方法,不能用

代码示例:

@Configuration @ComponentScan(basePackages = "config") @Import({ Configuration_B.class}) public class Configuration_A { } @Configuration @PropertySource("classpath:info.properties") public class Configuration_B { }

@PropertySource

作用:用于加载.properties文件中的配置。例如我们配置数据源时,可以把连接数据库的信息写到properties配置文件中,就可以使用此注解指定properties配置文件的位置。

属性值:

value[]:用于指定properties文件位置。如果是在类路径下,需要写上classpath:

然后在方法中用@Bean注入Srping容器中配置文件的数据

代码示例:

@PropertySource("classpath:jdbc.properties") 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(name="dataSource") public DataSource getDataSource(){ BasicDataSource ds = new BasicDataSource(); ds.setDriverClassName(driver); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); return ds; } }

jdbc.properties文件:

jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/day01_spring jdbc.username=root jdbc.password=123456

注意:我们目前上课使用的版本是4.2.4,在spring4.3以前都需要提供一个占位符配置器: PropertySourcesPlaceholderConfigurer 而在spring4.3以后,则不需要提供。 提供的方式如下:(在SpringConfiguration或JdbcConfig中配置均可)

代码示例:

@Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { return new PropertySourcesPlaceholderConfigurer(); }
最新回复(0)