1.0-springboot的java配置方式

1.创建User实体类。

@Data
public class User {
    private String username;
    private String password;
    private Integer age;
}

2.创建UserDao用于模拟数据库交互。

public class UserDao{
    public List<User> queryUserList() {
        List<User> result = new ArrayList<User>();
        //模拟数据库查询
        for(int i = 1;i < 10; i++) {
                User user = new User();
                user.setUsername("username_" + i);
                user.setPassword("password" + i);
                user.setAge(i);
                result.add(user);
        }
        return result;
    }
}

3.编写UserService用于实现User数据操作业务逻辑。

@service
public class UserService{
    @Autowired//注入Spring容器中的bean对象
    private UserDao userDao;
    public List<User> queryUserList() {
        //调用userDao中的方法进行查询。
        return this.userDao.queryUserList();
    } 
}

4.编写SpringConfig用于实例化Spring容器。

@Configuration//通过该注解来表明该类是一个spring的配置,相当于一个xml文件。
//配置扫描包。
@ComponentScan(basePackages = "cn.my.springboot.javaconfig")
public class SpringConfig {
    @Bean//通过该注解来表明是一个Bean对象,相当于xml中的<bean>
    public UserDao getUserDao() {
        return new UserDao();//直接new对象作演示。
    }
}

5.编写测试方法用于启动Spring容器。

public class Test {
    public static void main(String[] args) {
        //通过java配置来实例化Spring容器。
        AnnotationConfigApplicationContext context = new 
        AnnotationConfigApplicationContext(SpringConfig.class); 

        //在Spring容器中获取bean对象
        UserService userService = context.getBean(UserService.class);

        //调用对象中的方法
        List<User> list = userService.queryUserList();
        for(User user : list) {
            System.out.println(user.getUsername() + "|" user.getPassword() + "|" user.getAge());
        //销毁该容器
        context.destroy;
        }
    }
}

测试结果: 

可以使用java代码完美的替代XML配置文件。  至于结构请不清晰就是仁者见仁智者见智。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏阿杜的世界

通过EmbeddedServletContainerCustomizer接口调优Tomcat

通过在application.properties设置对应的key-value对,可以配置Spring Boot应用程序的很多特性,例如POST、SSL、MyS...

671
来自专栏开发技术

cassandra高级操作之JMX操作

  一开始有点无头绪,后面查看cassandra官方文档看到Monitoring章节,里面说到:Cassandra中的指标使用Dropwizard Metric...

1244
来自专栏玩转JavaEE

Spring常用配置

上篇文章我们简单介绍了Spring的基本配置,算是一个简单的入门,这篇文章我们再一起来看看Spring在使用的过程中一些其他的常见配置。 Bean的Scope ...

3156
来自专栏菩提树下的杨过

Spring 4.0.2 学习笔记(1) - 最基本的注入

1、 添加maven支持 <dependency> <groupId>org.springframework</grou...

1936
来自专栏Android 研究

OkHttp源码解析(十) OKHTTP中连接与请求及总结

主要看下ConnectInterceptor()方法,里面代码已经很简单了,受限了通过streamAllocation的newStream方法获取一个流(Htt...

1263
来自专栏程序员互动联盟

【专业领域】android apk 防止反编译技术第五篇-完整性校验

关于防止android apk被反编译的技术我们前面已经讲了四种。他们分别是加壳技术、运行时修改字节码、伪加密、对抗JD-GUI,如果有不明白的可以查看我的博客...

3417
来自专栏阿杜的世界

利用Mockito模拟DB

前两篇文章的主要内容是:为了给执行测试,如何建立数据库表和导入初始数据。这里我们将学习如何利用Mockito框架和一些注解模拟(mock)Reposito...

802
来自专栏javathings

@SpringBootApplication 的作用是什么

@SpringBootApplication 标注的类为 Spring Boot 的主配置类,Spring Boot 会运行这个类的 main 方法来启动 Sp...

1592
来自专栏架构技术

AOP缓存实现

964
来自专栏奔跑的蛙牛技术博客

分布式对象之客户\服务器角色以及RMI初探

程序员希望通过无所不在的java对象来作为所有问题的解决之道,思想就是通过网络请求相互协作。我可以调用一个远程对象帮我得到我所要的信息,并作为响应的一部分返回

691

扫码关注云+社区