Spring新注解

举报
执久呀 发表于 2022/10/22 21:10:00 2022/10/22
【摘要】 ​ 目录 Spring新注解使用新注解替换xml文件web包下的UserController测试下运行结果 Spring新注解使用上面的注解还不能 全部不代替xml配置文件,还需要使用注解替代的配置如下:非自定义的Bean的配置:<bean>加载properties文件的配置:<context:property-placeholder>组件扫描的配置:<context:component-s...

 目录

 Spring新注解

使用新注解替换xml文件

web包下的UserController测试下

运行结果



 Spring新注解

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

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

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

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

引入其他文件:<import>

spring新注解

编辑

使用新注解替换xml文件

在config包下,创建名为DataSourceConfiguration类下

package com.config;


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

import javax.sql.DataSource;
import java.beans.PropertyVetoException;

// 加载外部properties文件<context:property-placeholder location="classpath:MyJdbc.properties"/>
@PropertySource("classpath:MyJdbc.properties")

public class DataSourceConfiguration {
    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.password}")
    private String password;
    @Value("${jdbc.username}")
    private String username;

    @Bean("dataSource")//Spring会将当前方法的返回值以指定名称存储到Spring容器中
    public DataSource getDateSource() throws PropertyAccessException, PropertyVetoException {
        ComboPooledDataSource dataSource=new ComboPooledDataSource();
        dataSource.setDriverClass(driver);
        dataSource.setJdbcUrl(url);
        dataSource.setPassword(password);
        dataSource.setUser(username);
        return dataSource;
    }
}

在config包下创建SpringConfiguration类下

package com.config;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.springframework.beans.PropertyAccessException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.*;

import javax.sql.DataSource;
import java.beans.PropertyVetoException;

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

// base是基本包他会扫描其子类下的所有包<context:component-scan base-package="com"/>
@ComponentScan("com")

//在总配置中加载分配置,加载核心配置类,若有多个,则写xx.class,xxx.class....
@Import(DataSourceConfiguration.class)
public class SpringConfiguration {

}

web包下的UserController测试下

package com.web;

import com.config.SpringConfiguration;
import com.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class UserController {
    public static void main(String[] args) {
        //ApplicationContext app=new ClassPathXmlApplicationContext("ApplicationContext.xml");
        ApplicationContext app=new AnnotationConfigApplicationContext(SpringConfiguration.class);
        UserService userService = app.getBean(UserService.class);
        userService.save();
    }

}

运行结果

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。