Java框架spring Boot学习笔记(七):@Configuration,@bean注解
@Configuration作用在类上,相当于一个xml文件
@bean作用于方法上,相当于xml配置中的<bean>标签
一个例子:
新建一个Springboot工程
新建一个User类:User.java
package com.springboot.test; //建立一个User对象
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.java,这里模拟数据库查询操作。
package com.springboot.test; import java.util.ArrayList;
import java.util.List; // 模拟数据库操作
public class UserDAO {
public List<User> queryUserList(){
List <User> result = new ArrayList<User>();
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.java
package com.springboot.test; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import java.util.List; @Service
public class UserService { @Autowired
//注入spring容器中的bean对象
private UserDAO userDAO; public List<User> queryUserList(){
//调用userDAO中的方法进行查询
return userDAO.queryUserList();
}
}
新建配置文件SpringConfig.java,相当于在Spring中的xml配置。
package com.springboot.test; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration; @Configuration //通过该注解表明该类是一个Spring的配置,相当于一个xml文件
@ComponentScan(basePackages = "com.springboot.test") //配置扫描包
public class SpringConfig { @Bean //通过该注解来表明一个Bean对象,相当于一个xml中的<bean>标签
public UserDAO getUserDAO(){
return new UserDAO(); //直接new对象做演示
}
}
新建一个测试文件TestApplication.java
package com.springboot.test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext; import java.util.List; public class TestApplication {
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
context.destroy();
} }
文件结构

运行输出
username:0, password:0, 1
username:1, password:1, 2
username:2, password:2, 3
username:3, password:3, 4
username:4, password:4, 5
username:5, password:5, 6
username:6, password:6, 7
username:7, password:7, 8
username:8, password:8, 9
username:9, password:9, 10
可以看出,使用springboot可以通过注解的方式对容器进行配置,可以避免使用晦涩费劲的xml配置,方便开发以及后续的管理。
Java框架spring Boot学习笔记(七):@Configuration,@bean注解的更多相关文章
- Java框架spring Boot学习笔记(六):Spring Boot事务管理
SpringBoot和Java框架spring 学习笔记(十九):事务管理(注解管理)所讲的类似,使用@Transactional注解便可以轻松实现事务管理.
- Java框架spring Boot学习笔记(三):Controller的使用
Controller注解介绍 @Controller:处理http请求 @RestController: Spirng4之后新加的注解,其实是一个组合注解等同于@ResponseBody和@Contr ...
- Java框架spring Boot学习笔记(二):Hello Spring Boot、以及项目属性配置
新建一个新建一个SpringBootTest工程 新建一个HelloController.java文件 package com.example.demo; import org.springframe ...
- Java框架spring Boot学习笔记(一):开始第一个项目
新建一个项目,选择Spring initializr 修改group和项目名 添加依赖包Web,MongoDB 设置保存位置和工程名 新建一个test的文件 输入代码: package com.xxx ...
- Java框架spring Boot学习笔记(五):Spring Boot操作MySQL数据库增、删、改、查
在pom.xml添加一下代码,添加操作MySQL的依赖jar包. <dependency> <groupId>org.springframework.boot</grou ...
- Java框架spring Boot学习笔记(四):Spring Boot操作MySQL数据库
在pom.xml添加一下代码,添加操作MySQL的依赖jar包. <dependency> <groupId>org.springframework.boot</grou ...
- Java框架spring Boot学习笔记(十):传递数据到html页面的例子
新建一个templates文件夹和index.html <!DOCTYPE html> <html> <head lang="en"> < ...
- Java框架spring Boot学习笔记(九):一个简单的RESTful API
RESTful API设计需求如下: User.java package com.springboot.test; public class User { private Long id; priva ...
- Java框架spring Boot学习笔记(八):@PropertySource,@Value注解
获取配置文件 忽略配置文件不存在时报错
随机推荐
- Git 安装和使用教程
Git 安装和使用教程 git 提交 全部文件 git add . git add xx命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A .来一次添加所有改变的文件.注意 ...
- 【C++】源自指针的报错
最近在调试PCL程序的时候,被这个报错折腾了好久. 无数血泪史总结成一句话,指针未初始化! PointCloudXYZ::Ptr plane_ptr; 错误!!! PointCloudXYZ::P ...
- mac下常用命令
常用命令 ls 查看当前目录下的文件 cd 进入某目录 . cd - 跳转回前一目录 . cd ~ 进入当前用户个人目录 pwd 输出当前所在路径 mkdir 新建文件夹. touch 新建文件 fi ...
- 报错:Heartbeating to master:7182 failed.
报错背景: cloudera-scm-agent 可以启动并且存活,但是jps没有进程. 报错现象: 查看报错日志:/opt/cm-5.15.1/log/cloudera-scm-agent/clou ...
- CFile、CStdioFile、FILE和其他文件操作(转+总结)
CFile.CStdioFile.FILE和其他文件操作(转+总结) 2010-04-10 20:36:33| 分类: VC++|举报|字号 订阅 下载LOFTER我的照片书 | ...
- python css选择器
css 选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 离线手动部署docker镜像仓库——harbor仓库(HTTPS)
实验环境: harbor服务器系统:CentOS Linux release 7.5.1804 (Core)harbor服务器IP:10.1.12.114harbor版本:v1.5.0docker版本 ...
- 完成端口IOCP详解
修改自: http://blog.csdn.net/piggyxp/article/details/6922277 ps: 原作者很厉害了, 把一个iocp模型讲解的这么形象,不过在实践过程中发现一些 ...
- 最近想学Json,请问大家有没有什么好的Json教程介绍一下?
最近想学json,请问大家有没有什么好的Json教程介绍一下? 最近学完java的框架了,想了解一下json,可是找不到相关视频,请大家有这方面的Json教程好资料就介绍下啦,最后有网址链接啦. {} ...
- 使用yum安装 gdb/g++等软件包
报错: Cannot find a valid baseurl for repo: base/7/x86_6 解决方法: 方法一. 1.打开 vi /etc/sysconfig/network-scr ...