spring注解开发

Spring注解开发

##1、Spring配置数据源

1.1数据源(连接池)的作用

*提高程序性能

*实现化数据源,初始化部分连接资源

*使用连接资源时从数据源中获取

*使用完毕之后将连接资源归还给数据源

常用的数据源:DBCP、C3P0、DoneCP、Druid等

1、4JDBC文件的抽取

首先,引入命名空间

  • 命名空间
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"

 <!--加载外部properties-->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"/>
        <property name="jdbcUrl" value="${jdbc.url}"/>
        <property name="user" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

2、Spring注解开发

2.1Spring原始注解

​ Spring是轻代码重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解替代xml配置文件可以简化配置,提高开发效率

*Spring原始注解主要是替代的配置

注解说明
@Component使用在类上用于实例化Bean
@Controller使用在Web层上用于实例化Bean
@Service使用在Service层上实例化bean
@Repository使用在DAO层上实例化Bean
@Autowried使用在属性上用于根据依赖类型依赖注入
@Qualifier结合@Autowried一起使用用于根据名称依赖注入
@Resource相当于@Autowried+@Qualifier,按照名称依赖注入
@Value注入普通属性
@Scope标注Bean的作用范围
@PostConstruct使用在方法上,标注该方法是Bean的初始化方法
@PreDestroy使用在方法上标注该方法是Bean的销毁方法
<!--使用注解需要配置组件扫描-->
<context:component-scan base-package="com.itcast"/>

注解:

@Component("userService")
public class UserServiceImpl implements UserService {
    @Autowired
    @Qualifier("userDao")
    private UserDao userDao;
    public void save() {
        userDao.save();
    }
}

自动注入

@Service("userService")
public class UserServiceImpl implements UserService {
    @Autowired //按照数据类型从Spring容器中进行匹配的
    //@Qualifier("userDao")//按照名称注入
    private UserDao userDao;
    public void save() {
        userDao.save();
    }
}

@Resource

@Service("userService")
public class UserServiceImpl implements UserService {
    //@Autowired //按照数据类型从Spring容器中进行匹配的
    //@Qualifier("userDao")
    @Resource(name="userDao")
    private UserDao userDao;
    public void save() {
        userDao.save();
    }
@Scope("prototype")
public class UserServiceImpl implements UserService {}
@Value("&{jdbc.driver}")//从容器中获取
private String driver;

    @PostConstruct//初始化方法
    @PreDestroy //销毁方法
    public void save() {
        userDao.save();
        System.out.println(driver);
    }

2.2Spring新注解

使用上面的注解不能全部替代xml配置文件,还需要使用注解替代的配置如下

  • 非自定义的Bean的配置:
  • 加载properties文件的配置: context:property-placeholder
  • 组件扫描contetxt:component-sca
  • 引入其他文件
注解说明
@Configuration用于指定当前类是一个Spring配置类,当创建容器时会从该类上加载注解
@ComponentScan用于指定Spring在初始化容器时要扫描的包;作用在Spring的xml配置文件中的;<contetxt:component-sca base-package=“com.itcast”/>一样
@Bean使用该方法,标注将该方法返回值存储到Spring容器中
@PropertySource用于加载properties文件的配置
@Import用于导入其他配置类

3、Spring集成Junit

3.2解决思路

  • 让SpringJunit负责创建Spring容器,但是需要配置文件的名称告诉他
  • 将需要进行测试Bean直接在测试类中进行注入

3.3 Spring 集成Junit步骤

1)导入Spring集成Junit坐标

2)使用@RunWith注解替换原来的运行期

3)使用@ContextConfiguration指定配置文件活配置类

4)使用@Autowired注入需要测试的对象

5)创建测试方法进行测试

@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration("classpath:applicationContext.xml") 配置方式
@ContextConfiguration(classes = SpringConfiguration.class)
public class SpringJunitTest {

    @Autowired
    private UserService userService;

    @Autowired
    private DataSource dataSource;
    @Test
    public void test1() throws SQLException {
        //System.out.println(dataSource.getConnection());
        userService.save();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值