spring学习总结(一)_Ioc基础(下)
本篇文章继续上篇文章讲解Ioc基础,这篇文章主要介绍零配置实现ioc,现在相信大家项目中也基本都是没有了xml配置文件。废话不多说。一起学习
代码示例
- BookDao.java
package com.kevin.spring.demo1.dao;
/**
* 图书数据访问接口
*/
public interface BookDao {
/**
* 添加图书
*
* @param bookName
* @return
*/
String addBook(String bookName);
}
- BookDaoImpl.java
/**
* 接口实现类
*/
@Repository
public class BookDaoImpl implements BookDao {
/**
* 添加图书接口
*
* @param bookName
* @return
*/
public String addBook(String bookName) {
return "添加图书《" + bookName + "》成功";
}
}
- BookService.java
@Service
public class BookService {
@Resource
BookDaoImpl bookDao;
public void storeBook(String bookName){
String result = bookDao.addBook(bookName);
System.out.println(result);
}
}
- User.java
package com.kevin.spring.demo1.entity;
import org.springframework.stereotype.Component;
@Component
public class User {
public User() {
System.out.println("创建User对象");
}
public User(String msg) {
System.out.println("创建User对象" + msg);
}
public void show() {
System.out.println("一个学生对象!");
}
}
- ApplicationConfig.java
package com.kevin.spring.demo1.config;
import com.kevin.spring.demo1.entity.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(basePackages = "com.kevin.spring.demo1")
public class ApplicationConfig {
@Bean
public User getUser(){
return new User("成功");
}
}
测试类
@org.junit.Test
public void testBook(){
ApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfig.class);
BookService bookService = ctx.getBean(BookService.class);
bookService.storeBook("周杰伦");
User user = ctx.getBean("getUser",User.class);
user.show();
}
运行结果
创建User对象
创建User对象成功
添加图书《周杰伦》成功
一个学生对象!
@Configuration
@Configuration 相当于配置文件中的<beans/>
@ComponentScan
@ComponentScan相当于配置文件中的context:component-scan
@Bean
@Bean相当于<bean/>,只能注解在方法和注解上,一般在方法上使用
方法名相当于id
这里注意上面获取user时用的是getUser,因为方法名相当于id
@Value获取properties配置
- 新建一个dev.properties文件
boy.name = kevin
boy.age = 20
- BoyUtil.java
package com.kevin.spring.demo1.util;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@PropertySource("classpath:dev.properties")
public class BoyUtil {
@Value("${boy.name}")
private String name;
@Value("${boy.age}")
private String age;
@Override
public String toString() {
return "BoyUtil{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
//get和set方法省略
}
测试
@org.junit.Test
public void testBoyUtil(){
ApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationConfig.class);
BoyUtil boyUtil = ctx.getBean(BoyUtil.class);
System.out.println(boyUtil);
}
输出结果
创建User对象
创建User对象成功
BoyUtil{name='kevin', age='20'}
好了,springIoc基础就暂时告一段落。玩的开心
代码:https://github.com/runzhenghengbin/spring-study
参考:https://www.cnblogs.com/best/p/5727935.html#_label3
spring学习总结(一)_Ioc基础(下)的更多相关文章
- spring学习总结(一)_Ioc基础(中)
本篇文章继续上篇文章讲解Ioc基础,这篇文章主要介绍使用spring注解配置Ioc 上篇文章主要是通过xml配置文件进行Ioc的配置.这次进行改造下,通过注解进行配置 首先先看一个简单的demo 简单 ...
- spring学习总结(一)_Ioc基础(上)
最近经历了许许多多的事情,学习荒废了很久.自己的目标成了摆设.现在要奋起直追了.最近发现了张果的博客.应该是一个教师.看了他写的spring系列的博客,写的不错.于是本文的内容参考自他的博客,当然都是 ...
- 【Spring学习笔记-1】Myeclipse下Spring环境搭建
*.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...
- Spring学习笔记一:基础概念
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6774310.html 一:Spring是什么 Spring的主要作用是作为对象的容器. 传统编程中,我们 ...
- 1.4(Spring学习笔记)Spring-JDBC基础
一.Spring JDBC相关类 1.1 DriverManagerDataSource DriverManagerDataSource主要包含数据库连接地址,用户名,密码. 属性及含义如下配置所示: ...
- Spring学习随笔(2):Eclipse下Spring环境配置+入门项目
1 准备工作 (按需下载) Eclipse 下载:http://www.eclipse.org/downloads/eclipse-packages/ : Spring 下载:http://repo. ...
- 【Spring学习】【Java基础回顾-数据类型】
Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...
- 【Spring学习笔记-2】Myeclipse下第一个Spring程序-通过ClassPathXmlApplicationContext加载配置文件
*.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...
- JavaSE入门学习7:Java基础语法之语句(下)
继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ...
随机推荐
- python3 用户登录 day01
'''用户登录作业需求:1. 三次重试机会2. 每次输错误时显示剩余错误次数'''num = 1while num <= 3: username = input("请输入用户名:&qu ...
- springmvc+ajax文件上传
环境:JDK6以上,这里我是用JDK8,mysql57,maven项目 框架环境:spring+springmvc+mybaits或spring+springmvc+mybatis plus 前端代码 ...
- 笨鸟先飞之ASP.NET MVC系列之过滤器(04认证过滤器)
概念介绍 认证过滤器是MVC5的新特性,它有一个相对复杂的生命周期,它在其他所有过滤器之前运行,我们可以在认证过滤器中创建一个我们定义的认证方法,也可以结合授权过滤器做一个复杂的认证方法,这个方法可以 ...
- C. Report
题意:给出n个无序的数以及m个操作,每个操作由两个数组成,第一个数是操作的方式,第二个数 i 是操作的范围,若第一个数是1,则给 1-i 个数按升序排序,若第二个数是2,则给 1-i 个数按降序排列. ...
- BZOJ1767/Gym207383I CEOI2009 Harbingers 斜率优化、可持久化单调栈、二分
传送门--BZOJCH 传送门--VJ 注:本题在BZOJ上是权限题,在Gym里面也不能直接看,所以只能在VJ上交了-- 不难考虑到这是一个\(dp\). 设\(dep_x\)表示\(x\)在树上的带 ...
- Java获取指定包名下的所有类的全类名的解决方案
最近有个需求需要获取一个指定包下的所有类的全类名,因此特意写了个获取指定包下所有类的全类名的工具类.在此记录一下,方便后续查阅 一.思路 通过ClassLoader来查找指定包 ...
- 汇编 STD和CLD指令
一.用纯汇编封装函数strcmpW 1.用repnz scasw计算字串长度 2.用repz cmpsw比较字串内容 3.把比较的结果存放在EAX里边返回 __declspec(naked) int ...
- maven项目中 org.hibernate.MappingNotFoundException: resource:*.hbm.xml not found问题的解决方案
是因为*.hbm.xml没有放到resource的mapper下导致的 对于Maven工程,编译的工作是由Maven程序来完成的,而Maven默认只会把src/main/resources文件夹下的文 ...
- [JSOI2016]病毒感染[dp]
题意 有 \(n\) 个村庄按标号排列,每个村庄有一个死亡速度 \(a_i\) 表示每天死 \(a_i\) 人(除非你治好这个村庄). 你从 1 号村庄出发,每天可以选择向相邻的村庄进发或者治愈 ...
- 1kb的前端HTML模板解析引擎,不限于嵌套、循环、函数你能想到的解析方式
传送门:https://github.com/xiangyuecn/BuildHTML copy之前说点什么 html做点小功能(什么都没有),如果是要手动生成html这种操作,容易把代码搞得乱七八糟 ...