【SSM_02】Spring注解

编程

2. 注意

在 spring 容器中有一些内置的名称,例如:vlaue="${username}" 获取的不是配置文件中的值而是主机的用户名。

二、spring 注解配置

1. 前置条件

<!-- 开启组件扫描 -->

<context:component-scan base-package="com.softwareMan"></context:component-scan

2. 原始注解

① 创建对象        作用在【类】上相当于 <bean id="userDao" class="com.softwareMan.dao.impl.UserDaoImpl"></bean>

- @Component     //用于普通类

- @Service       //用于service层

- @Repository    //用于dao层

- @Controller    //用于controller层

- 注意

* 以上四个注解作用相同,只是用来区分是那一层

* 若注解未赋值则默认使用类名首字母小写作为id

② 注入数据        作用在【成员变量】上相当于<property name="driverClass" value="${driverClassName}" />

- @Autowired     //先按照字节码文件来查找,其次按照变量名来匹配

- @Qualifier()    //按照 id 来查找

- @Resource       //未配置参数相当于 @Autowired 配置了参数相当于 @Autowired + @Qualifier()

- @Value()        //注入基本数据类型 + string

- 注意

* @Autowired 、@Qualifier() 在 spring 包中

* @Resource 在 jdk javax包中,【jdk 1.8可用】

③ 改变作用范围        作用在【类】上

- @Scope     //相当的与 bean 标签中的 scope 属性

④ 声明周期        作用在【方法】上相当于 bean 标签中 init-method 、 destory-method 属性

- @PosrContruct        //创建的方法

- @PreDestory        //销毁的方法

3. 新注解

① @Configuration        //指定一个类为配置类

② @ComponentScan        //指定要扫描的包

③ @Bean                 //将方法的返回值存入 spring 容器中

④ @PropertySource       //加载配置文件

⑤ @Import               //导入其他配置类

  

# 示例

   //标志该类是Spring的核心配置类

   @Configuration

   //<context:component-scan base-package="com.software"/>

   @ComponentScan("com.software")

//<import resource=""/>

@Import({DataSourceConfiguration.class})

public class SpringCofiguration {

}

/*

DataSourceConfiguration 类

*/

//<context:property-placeholder location="classpath:jdbc.properties"/>

@PropertySource("classpath:jdbc.properties")

public class DataSourceConfiguration {

@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("dataSource") //Spring会将当前方法的返回值以指定名称存储到Spring容器中

public DataSource getDataSource() throws PropertyVetoException {

ComboPooledDataSource dataSource = new ComboPooledDataSource();

dataSource.setDriverClass(driver);

dataSource.setJdbcUrl(url);

dataSource.setUser(username);

dataSource.setPassword(password);

return dataSource;

}

}

三、spring 整合 junit

1. 使用步骤

① 导包

② 使用 @Runwith 替换原来的运行期

③ 使用 @ConfigConfiguration 指定配置文件或配置类

④ 使用 @Autowired 注入测试对象

⑤ 开始测试

2. 示例

@RunWith(SpringJUnit4ClassRunner.class)

//@ContextConfiguration("classpath:applicationContext.xml")

@ContextConfiguration(classes = {SpringCofiguration.class})

public class SpringJunitTest {

@Autowired

private UserService userService;

@Autowired

private DataSource dataSource;

@Test

public void test1() throws SQLException {

userService.save();

System.out.println(dataSource.getConnection());

}

}

以上是 【SSM_02】Spring注解 的全部内容, 来源链接: utcz.com/z/513474.html

回到顶部