JavaBean三种配置方式之:Java类方式

Wesley13
• 阅读 725

JavaBean三种配置方式之:Java类方式

3月份入职一家公司一个多月了,进来是各种坑啊,总算在这周知道自己要做什么项目了,虽然项目还没有跑起来,但是里面的技术还是可以了解的。由于之前项目中没有使用过SpringBoot,所以也不是太会,然后自己就看了一下,今天不是想跟大家去讲一SpringBoot,而是想跟大家分享一下JavaBean的三种配置方式中的Java类配置的方式。

我们先来回忆一下JavaBean的三种配置方式。

1、基于XML的配置方式;

2、基于注解的配置方式;

3、基于Java类的配置方式;

我们之前可能使用最多的可能就是基于注解的配置方式了,我再次就不再说了,基于XML的配置方式太多臃肿,项目中可能也不太常用,那么我们就来说说基于Java类的配置方式。

Java类的配置方式其实在一定程度上取代了xml的配置方式,特别实在SpringBoot中已经完全采用了Java类的配置方式,我们通过一个简单的例子去了解Java类的配置方式。

第一步:先创建一个User实体类

package com.lbt.demo;import java.io.Serializable;/** * @Descriptions:用户实体类 * @author : lbt * @date : 2018年5月10日 下午1:58:15 */public class User implements Serializable{  private static final long serialVersionUID = 1L;  private String username;    private String password;    private int 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 int getAge() {    return age;  }  public void setAge(int age) {    this.age = age;  }  @Override  public String toString() {    return "User [username=" + username + ", password=" + password + ", age=" + age + "]";  }  }

第二步:创建一个数据层

package com.lbt.demo;import java.util.ArrayList;import java.util.List;/** * @Descriptions:数据层 * @author : lbt * @date : 2018年5月10日 下午2:14:42 */public class UserDao {    public List<User> queryUserList() {        ArrayList<User> list = new ArrayList<User>();        // 模拟数据库数据    for (int i = 0; i < 10; i++) {      User user = new User();      user.setUsername("username" + i);      user.setPassword("password" + i);      user.setAge(1 + i);      list.add(user);    }    return list;  }}

第三步:创建业务层

package com.lbt.demo;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;/** * @Descriptions:业务层 * @author : lbt * @date : 2018年5月10日 下午2:14:59 */@Servicepublic class UserService {  @Autowired  private UserDao userDao;    public List<User> queryUserList() {    // 调用Dao的查询用户方法进行查询    return userDao.queryUserList();  }}

第五步:配置文件

package com.lbt.demo;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;/** * @Descriptions:配置文件类 * @author : lbt * @date : 2018年5月10日 下午2:03:29 */@Configuration // 声明为一个配置文件@ComponentScan(basePackages="com.lbt.demo") //扫描包public class SpringConfig {    @Bean  // 通过这个注解来标明这是一个Bean对象,相当于xml文件中的<bean>  public UserDao getUserDao() {    return new UserDao();  }}

前面的四步相信大家已经很熟悉了,可能就是这步大家之前要是没接触可能瞬间跟我一样,有点看不太明白,在整个项目里面找xml配置文件,结果发现却根本没有配置文件!

说一下这三个注解的作用:

@Configuration:这个注解其实就是把我们当前的这个类,声明为一个配置文件,它就相当于我们的xml配置文件,跟它的作用是一样的,只不过用类的方式来进行展现;

@ComponentScan(basePackages="包路径"):这个注解其实就是去扫描我们的包路径,对我们需要扫描的包进行扫描,如果需要扫描多个包,之间用逗号隔开即可;

@Bean:这个注解其实更好理解,它就相当于xml中的,我们之前通过标签将它注入到容器中,现在只需要在你所需要注入的资源上面加上@Bean注解,就可以注入到Spring容器中;

第六步:测试

package com.lbt.demo;import java.util.List;import org.springframework.context.annotation.AnnotationConfigApplicationContext;/** * @Descriptions:测试方法 * @author : lbt * @date : 2018年5月10日 下午2:07:04 */public class Test {  @SuppressWarnings("resource")  public static void main(String[] args) {        // 通过Java配置的方式实例化Spring容器    AnnotationConfigApplicationContext applicationContext = new         AnnotationConfigApplicationContext(SpringConfig.class);        // 在Spring容器中获取Bean对象    UserService userService = applicationContext.getBean(UserService.class);        // 调用对象中的方法    List<User> userList = userService.queryUserList();        for (User user : userList) {      System.out.println(user);    }        // 销毁容器    applicationContext.destroy();  }  }

测试结果演示

更多精彩内容,请关注“一个程序员的成长

JavaBean三种配置方式之:Java类方式

**推荐阅读:
**

1、福利局:除了你们想要的,只剩你们想要的了

2、对于迷茫的人生,我们应该怎么去选择

3、程序员培养一个兴趣爱好有多重要?**
**

本文分享自微信公众号 - 一个程序员的成长(xiaozaibuluo)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
暗箭伤人 暗箭伤人
1年前
【www.ithunter.club】 20230922下午
不容易的2023年,我们一起努力【www.ithunter.club】(2023092208:00:00.8872062023092216:00:00.887206)1.人事招聘专员数名(可选远程或入职)2.招聘向坐标东京Yahoo、Shift、L
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这