首页 > 编程语言 > 详细

Spring 注解

时间:2021-02-28 21:57:26      阅读:33      评论:0      收藏:0      [点我收藏+]

Spring 注解开发

Spring 原始注解

Spring 是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替 xml 配置文件可以简化配置,提高开发效率。
Spring 原始注解主要是替代 的配置
@Component 使用在类上用于实例化 Bean,让 Spring 创建 Bean 对象
@Controller 使用在 web 层类上用于实例化 Bean
@Service 使用在 service 层类上用于实例化Bean
@Repository 使用在 dao 层类上用于实例化 Bean
@Autowired 使用在字段上用于根据类型依赖注入
@Qualifier 结合@Autowired一起使用用于根据 id 名称进行依赖注入
@Resource 相当于@Autowired+@Qualifier,按照名称进行注入
@Value 注入普通属性
@Scope 标注 Bean 的作用范围
@PostConstruct 使用在方法上标注该方法时 Bean 的初始化方法init-method
@PreDestory 使用在方法上标注该方法是 Bean 的销毁方法 destory-method
注意:使用注解进行开发时,需要在 applicationContext.xml 中配置组件扫描,作用是指定哪个包及其子包下的 Bean 需要进行扫描以便识别别使用注解配置的类、字段和方法。

<context:component-scan base-package="com.itheima"></context:component-scan>
// 配置 userService
@Service("userService")
@Scope("prototype")
public class UserServiceImpl implements UserService {

//    @Autowired // 按照数据类型从 Spring 容器中进行匹配的,直接找UserDao类型的bean注入在这个位置
//    @Qualifier("userDao") // 按照id的值名称从容器中进行匹配的,注意:此处的Qualifier需要结合Autowired来使用
    @Resource(name="userDao") // 相当于@Autowired + @Qualifier("userDao")
    private UserDao userDao;

    // 前提是需要 Spring 中配置了jdbc.properties 文件属性
    @Value("${jdbc.driver}")
    private String driver;

    public void save() {
        System.out.println(driver);
        userDao.save();
    }
}

// 配置 userDao
@Repository("userDao")
public class UserDaoImpl implements UserDao {
    
    // 注入普通属性
    @Value("tom")
    private String username;
    
    public void save() {
        System.out.println(username);
        System.out.println("save running...");
    }

  @PostConstruct
    public void init() {
      // 对象的初始化方法
   }
 @PostDestory
    public void destory() {
      // 对象的销毁方法
   }

}

Spring 新注解

@Configuration 用于指定当前类是一个 Spring 配置类,当创建容器时会从该类上加载注解
需要创建一个 config.SpringConfiguration 类来实现
@ComponentScan 用于指定 Spring 在初始化容器时要扫描的包。作用和在 Spring 的 xml 配置文件中的 <context:component-scan base-package="com.itheim"/> 一样
@Bean 使用在方法上,标注将该方法的返回值存储到 Spring 容器中
@PropertySource 用于加载 properties 文件中的配置
@Import 用于导入其他的配置类
创建容器的方式也需要修改

public static void main(String[] args) {
        ApplicationContext app = new AnnotationConfigApplicationContext(SpringConfiguration.class);
        UserService userService1 = app.getBean(UserService.class);
        userService1.save();
    }

核心配置类

@Configuration
@ComponentScan("com.itheima")
@Import({JdbcConfig.class})
public class SpringApplicationConfig {
}

数据源配置类

@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("dataSource")
  public DataSource getJdbcDataSource() throws Exception {
    ComboPooledDataSource dataSource = new ComboPooledDataSource();
    dataSource.setDriverClass(driver);
    dataSource.setJdbcUrl(url);
    dataSource.setUser(username);
    dataSource.setPassword(password);
    return dataSource;
  }
}

Spring 注解

原文:https://www.cnblogs.com/zehai-cool/p/14460410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!