回顾基础
1、javaConfig
是什么:以java代码的方式管理bean
为什么学它:boot底层原理就是它
历史版本:
(1)spring1.x——》使用xml配置
(2)spring2.x——》使用注解配置(加注解,扫描注解)
(3)spring3.x——》javaConfig&springBoot
2、spring核心复习
Spring两大核心:基于工厂模式IOC(DI)和基于动态代理AOP。
其中IOC(DI)是指控制器反转(依赖注入),原来要使用某个类对象实例是必须自己创建,使用spring后就不需要自己创建,由spring创建,需要时直接从spring中获取并且有依赖关系是会spring会通过反射自动注入。-原来自己设置值,现在spring自动注入,也算是ioc
AOP就是不影响正常执行过程的前后加入额外的逻辑。比如权限,日志等,该执行的业务逻辑正常执行知识可以进行权限的判断核日志记录。
3、 测试spring
方式一、自己new容器
//通过xml初始化spring容器
ApplicationContext context = new
ClassPathXmlApplicationContext("beans.xml");
System.out.println(context.getBean(Date.class));
方式二、创建容器
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringTestTest {
@Autowired
private ApplicationContext applicationContext;
//junit测试
......
4、组件注册
创建项目并导包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.12.RELEASE</version>
</dependency>
@Configuration:加了这个注解的类就相当于传统的一个applicationContext-xxx.xml
@Bean:在标注了@Configuration的类里面的方式上面打上@bean就相当于在applicationContext-xxx.xml配置的一个
Dao的名字默认就是方法名,如果想改方法名使用@Bean(“beanName”)
其他注解还有
@ComponentScan 扫描bean,
@Scope,
@Lazy 懒加载,
@Conditional- 按照条件注册,
@Import
什么是Spring Boot
springBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品:
为什么使用springBoot
它的出现解决了传统spring项目以下的问题:
1)配置负责繁多
每一个组件集成spring都需要编写对应配置文件,比如appplicationContext-xxx.xml
2)混乱的依赖管理
在spirng中想集成对应组件时,需要导入N多的pom,并且还有考虑版本。
我们使用SpringBoot创建java应用,只需填写很少配置和依赖就能快速搭建,并使用java –jar 启动它,就能得到一个生产级别的web工程。非常方便
特点:开箱即用,没有代码生成,无需xml配置
入门:
1)创建springboot_01_helllo 项目
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2)新建启动类(main方法)
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
3)新建controller类
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String index(){
return "hello";
}
}
4)运行启动类,浏览器:http://localhost:8080/hello