学习笔记:注解开发

实例化Bean:

1、Component(用在类上)                   2、Controller(用在web层)

3、Service(用在service层)                  4、Repository(在dao层上)

作用是一致的,因为项目区分加以分类

依赖注入

1、Autowired:使用在字段上用于根据类型依赖注入

2、Qualifier:结合 @Autowired 一起使用用于根据名称进行依赖注入

3、Resource:相当于 @Autowired+ @Qualifier ,按照名称进行注入

@Component("ud")
public class Userdaoimpl implements Userdao {
     ……
}



@Service
public class UserServiceImpl implements UserService {
    @Resource(name="ud")
    Userdao userdao;
    ……
}



public class DBTest {
    @Autowired 
    UserService userService;
}



直接就能懂的

1、Value 注入普通属性       2、Scope   标注 Bean 的作用范围 

3、PostConstruct 使用在方法上标注该方法是 Bean 的初始化方法

4、PreDestroy 使用在方法上标注该方法是 Bean 的销毁方法

新注解

@Configuration 用于指定当前类是一个 Spring 配置类,当创建容器时会从该类上加载注解
@ComponentScan 用于指定 Spring 在初始化容器时要扫描的包。
@Bean 使用在方法上,标注将该方法的返回值存储到 Spring 容器中
@PropertySource 用于加载 .properties 文件中的配置
@Import 用于导入其他配置类

Bean 和PropertySource 的使用:


import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
import java.beans.PropertyVetoException;

@PropertySource("classpath:jdbc.properties")//链接配置文件
public class Data_c3p0 {
    @Value("${c3p0.jdbc.driver}")
    String driverClass;
    @Value("${c3p0.jdbc.url}")
    String jdbcUrl;
    @Value("${c3p0.jdbc.username}")
    String value;
    @Value("${c3p0.jdbc.password}")
    String password;
    
    @Bean("datasource")
    public ComboPooledDataSource kaifa() throws PropertyVetoException {
        ComboPooledDataSource dataSource=new ComboPooledDataSource();
        dataSource.setDriverClass(driverClass);
        dataSource.setJdbcUrl(jdbcUrl);
        dataSource.setUser(value);
        dataSource.setPassword(password);
        return dataSource;
    }
}

其他三个的使用

注解都写在org包下,需要对org包扫描

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@ComponentScan("org")
@Import({Data_duild.class, Data_c3p0.class})
public class SpringConfig {

}

spring整合junit

为了替换掉

依赖


<!-- 此处需要注意的是, spring5 及以上版本要求 junit 的版本必须是 4.12 及以上 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>

说明:

@RunWith(SpringJUnit4ClassRunner.class)
// 加载 spring 核心配置文件
@ContextConfiguration(value = {"classpath:applicationContext.xml"})
// 加载 spring 核心配置类
@ContextConfiguration(classes = {SpringConfiguration.class})

样例:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfig.class})//指定配置文件 类似于上述的applicationContext.xml。
public class DBTest {
    @Autowired//注入  替换getbean
    UserService userService;

    @Test
    public void qiehuan() throws SQLException {
        User user=new User(24,"zhangsan","123456");
       userService.insert(user);
       userService.update(user);
       userService.delete(11);
       userService.find();
       //生产
        userService.insert(user);
        userService.update(user);
        userService.delete(11);
        userService.find();
    }

整个过程中的所有依赖(懒得找了,下次复习自己找,反正肯定都有):

    <dependencies>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
        <!-- Druid连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>

        <!-- 此处需要注意的是, spring5 及以上版本要求 junit 的版本必须是 4.12 及以上 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值