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注解
获取配置文件 忽略配置文件不存在时报错
随机推荐
- USB协议学习
URB:USB 请求块(USB request block,urb)是USB 设备驱动中用来描述与USB 设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff 结构体.
- Sql case when 示例
SELECT 单元编号,年,月, 项目编号='11111', sum(case when 项目编号= 'ZB010201' then [当月额] else 0 end ) 医疗收 ...
- 前端-JavaScript2-5——JavaScript之运算符进阶
运算符(Operators,也翻译为操作符),是发起运算的最简单形式. 运算符的分类见仁见智,我们的课程对运算符进行如下分类: 数学运算符(Arithmetic operators) 比较运算符(Co ...
- 学习笔记《Java多线程编程实战指南》二
2.1线程属性 属性 属性类型及用途 只读属性 注意事项 编号(id) long型,标识不同线程 是 不适合用作唯一标识 名称(name) String型,区分不同线程 否 设置名称有助于 ...
- python 云打码 http接口
import http.client, mimetypes, urllib, json, time, requests ######################################## ...
- python生成linux命令行工具
您是否也曾一直想生成类似cd, cat等小巧/迷人/实用的小工具作为系统命令或者将python程序打包为exe进行分发?ok,机会来了.利用python 的argparse 和 pyinstaller ...
- Intent之跳转总结
) { localIntent.setAction(; ActivityManager am = (ActivityManager) context.) {) { ) { // android 5.0 ...
- mfc添加自定义事件
1.在对话框的头文件里面添加声明函数: afx_msg void OnStnClickedPicStop(); 2.在对话框的源文件添加 BEGIN_MESSAGE_MAP(CPcEn3dTestDl ...
- 使用Git Bash从Git上下载代码到本地以及上传代码到码云Git
前提是在码云上已经新建一个空的项目,可参考:https://www.cnblogs.com/babysbreath/p/9170455.html 1.新建一个目录,存放下载下来的项目,我在D盘新建了一 ...
- Layout-2相关代码:3列布局代码演化[一]
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...