博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java的配置方式简介
阅读量:6312 次
发布时间:2019-06-22

本文共 3594 字,大约阅读时间需要 11 分钟。

1,java的配置方式简介

java的配置方式是为了代替使用xml配置方式,
主要使用两个注解:
@Configuration//通过该注解来表明该类是一个spring的配置,相当于一个xml文件
@ComponentScan(basePackages="com.SpringBoot.javaConfig")//配置扫码包

设置bean的方式,既可以直接在bean类上面使用@Component,@Service

也可在java配置类里面使用@bean,搭配类似如下方法代替xml中bean的配置:
@Bean //通过该配置来表明是一个bean对象,相当于xml里面的<bean>

//以下也可通过直接在User上面使用@Component代替    @Bean    //通过该配置来表明是一个bean对象,相当于xml里面的
public UserDAO getUserDAO() { return new UserDAO();//直接new对象做演示 }

初始化spring容器,由于不再使用配置文件了:

ApplicationContext = new ClassPathXmlApplicationContext(xmlPath);

而是使用如下方式代替:

AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(SpringConfig.class);

该方式,会通过SpringConfig这个配置类进行容器初始化。

获取bean的方式,同样可以使用context.getBean(类.class)方式,如下:

UserService userService=context.getBean(UserService.class);

这种方式依然可以使用@Autowired等注解。

这种java配置方式,完全不需要xml配置,简单易懂。

二,读取外部的资源配置文件
通过@propertySource可以读取指定的配置文件,通过@value注解获取值。具体用法:

@propertySource(value={"classpath:jdbc.properties"})public class SpringConfig{  @Value("${jdbc.url}")  private String jdbcUrl;  @Bean  public UserDAO getUserDAO()  {    return new UserDAO();  }}

 

为了保证如果读取的配置文件不存在忽略他,加上属性:ignoreResourceNotFound=true

如果多个配置文件,可以修改value值:

@propertySource(value={"classpath:jdbc.properties","xxxx","xxxx"},ignoreResourceNotFound=true)

 

实例:

第一步:新建一个实体类:User

package com.SpringBoot.javaConfig;public class User {    private String username;    private String password;    private Integer age;        public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }}

新建一个UserDAO模拟DAO数据库查询

package com.SpringBoot.javaConfig;import java.util.ArrayList;import java.util.List;import org.springframework.stereotype.Component;public class UserDAO {        public List
queryUserList(){ List
result=new ArrayList
(); //模拟数据库查询 for(int i=0;i<10;i++) { User user=new User(); user.setUsername("username_"+i); user.setPassword("password_"+i); user.setAge(i+1); result.add(user); } return result; }}

第三步:新建一个UserService调用UserDAO

package com.SpringBoot.javaConfig;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class UserService {    @Autowired    //注入spring容器中的bean对象    private UserDAO userDAO;        public List
queryUserList(){ return userDAO.queryUserList(); }}

最后一步:新建一个main方法测试:

package com.SpringBoot.javaConfig;import java.util.List;import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Main {    public static void main(String[] args) {                //通过java配置来管理Spring容器        AnnotationConfigApplicationContext context=                new AnnotationConfigApplicationContext(SpringConfig.class);        //在spring容器中获取bean对象        UserService userService=context.getBean(UserService.class);                //调用对象中的方法        List
list=userService.queryUserList(); for(User user:list) { System.out.println(user.getUsername()+","+user.getPassword()+","+user.getAge()); } //销毁容器 context.destroy(); }}

 

转载地址:http://mahxa.baihongyu.com/

你可能感兴趣的文章
一个小代码,欢迎大佬的意见,求指正
查看>>
搭建LAMP架构
查看>>
神经网络注意力机制--Attention in Neural Networks
查看>>
Spring.Net+WCF实现分布式事务
查看>>
在Linux上高效开发的7个建议
查看>>
java数据结构 - 数组使用的代码
查看>>
个人简历-项目经验
查看>>
swoole异步任务task处理慢请求简单实例
查看>>
oracle数据泵导入分区表统计信息报错(四)
查看>>
spring技术内幕读书笔记之IoC容器的学习
查看>>
细说多线程(五) —— CLR线程池的I/O线程
查看>>
JavaScript instanceof和typeof的区别
查看>>
Hadoop文件系统详解-----(一)
查看>>
《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(8)--- 主动器...
查看>>
状态码
查看>>
我的友情链接
查看>>
用sqlplus远程连接oracle命令
查看>>
多年一直想完善的自由行政审批流程组件【2002年PHP,2008年.NET,2010年完善数据设计、代码实现】...
查看>>
自动生成四则运算题目
查看>>
【翻译】使用新的Sencha Cmd 4命令app watch
查看>>