zoukankan      html  css  js  c++  java
  • Spring注解开发-新注解

    1.使用原始注解遗留的问题

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

    • 非自定义的Bean的配置:<bean>

    • 加载properties文件的配置:<context:property-placeholder>

    • 组件扫描的配置:<context:component-scan>

    • 引入其他配置xml文件:<import>

    在applicationContext.xml中引入

     2.Spring新注解

     Spring在开发时候,可以一个配置文件都不要了,全注解进行开发

     DataSourceConfiguration

    package com.company.config;
    
    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;
    
    import javax.sql.DataSource;
    
    // 专门负责数据源相关配置
    // <context:property-placeholder location="classpath:jdbc_c3p0.properties"/>
    @PropertySource("classpath:jdbc_c3p0.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;
    
        // 让Spring把方法的返回值以指定名称存放到Spring容器中
        @Bean("dataSource")
        public DataSource getDataSource() throws PropertyVetoException {
            ComboPooledDataSource dataSource = new ComboPooledDataSource();
            dataSource.setDriverClass(driver);
            dataSource.setJdbcUrl(url);
            dataSource.setUser(username);
            dataSource.setPassword(password);
            return dataSource;
        }
    }
    

      SpringConfiguration

    package com.company.config;
    
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.Import;
    
    // 标志该类是Spring的核心配置类(不要配置文件,不是意味着不要配置,原来的配置只是用类的方式代替文件,用注解的方式代替标签)
    @Configuration
    // <context:component-scan base-package="com.company"/>
    @ComponentScan("com.company")
    // <import resource=""/>
    @Import({DataSourceConfiguration.class})
    public class SpringConfiguration {
    
    }
    

      UserController

    package com.company.web;
    
    import com.company.config.SpringConfiguration;
    import com.company.service.UserService;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class UserController {
        public static void main(String[] args) {
            // ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
            // 加载核心配置类
            ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfiguration.class);
            UserService userService = applicationContext.getBean(UserService.class);
            userService.save();
        }
    }
    

      此时,不再需要applicationContext.xml这个配置文件了,使用Spring全注解开发

  • 相关阅读:
    mysql 判断时间 语法
    SVN权限配置
    redis 安装 配置 及启动
    SVN搭建(linux 7)
    Maven 逆向工程
    git 设置只输入一次用户名和密码
    java环境变量配置(win7)
    Navicat Premium 12 激活
    linux 常用命令
    MVC的验证(模型注解和非侵入式脚本的结合使用)
  • 原文地址:https://www.cnblogs.com/GumpYan/p/14118778.html
Copyright © 2011-2022 走看看