bean

Springboot学习07-数据源Druid

≡放荡痞女 提交于 2020-03-09 07:52:45
Springboot学习07-数据源Druid 关键字   Druid 前言   学习笔记 正文 1-Druid是什么 Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的功能。 2-Springboot引入Druid 2-1-maven依赖 <!--引入druid数据源--> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version> </dependency> 2-2-application.propertites配置 # 数据库连接url地址 spring.datasource.url=jdbc:mysql://IP:3306/demo # 数据库连接用户名和密码 spring.datasource.username=wbcfq spring.datasource.password

Spring工厂模式+单例实现解耦

大憨熊 提交于 2020-03-09 04:41:35
1。BeanFactory 实现解决三层架构new之间的依赖 package bean; import org.springframework.beans.factory.BeanFactory; import javax.xml.ws.soap.Addressing; import java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import java.util.Properties; public class FactoryBean { //定义一个Properties private static Properties prop; //定义一个Map,存放所创建的对象 private static Map<String ,Object> beans; //使用静态代码块 static{ try { //1.实例化对象 prop=new Properties(); //2.获取流对象 InputStream in= BeanFactory.class.getClassLoader().getResourceAsStream("bean.properties"); prop

干货 | 速速收藏:五分钟带你了解Spring IOC原理!

岁酱吖の 提交于 2020-03-08 22:34:10
spring容器高层视图 Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。 Bean缓存池:HashMap实现 IOC容器介绍 Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上,还提供了 Bean 实例缓存、生命周期管理、 Bean 实例代理、事件发布、资源装载等高级服务。 BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身; ApplicationContext 面向使用 Spring 框架的开发者,几乎所有的应用场合我们都直接使用 ApplicationContext 而非底层的 BeanFactory。 BeanFactory BeanFactory体系架构: BeanDefinitionRegistry : Spring 配置文件中每一个节点元素在 Spring 容器里都通过一个 BeanDefinition 对象表示,它描述了 Bean 的配置信息。而 BeanDefinitionRegistry

Spring Cloud Zuul 初始化源码深度解析

烈酒焚心 提交于 2020-03-08 22:16:16
概述   在微服务场景的开发下,网关的重要性不言而喻。Zuul是Netflix开源的微服务网关,Spring Cloud zuul是spring对Zuul进行的整合与增强。本文主要从源码角度对其初始化的过程。 主要包含以下内容 @EnableZuulProxy和@EnableZuulServer的区别 路由配置 ZuulProperties 路由定位器 RouteLocator 与spring mvc的集成 ZuulControler和ZuulHandlerMapping Zuul的饥饿加载 zuul.ribbon.eager-load.enabled zuul的事件监听机制,动态路由的基石。ZuulRefreshListener Filter初始化 Zuul初始化总结 1.@EnableZuulProxy和@EnableZuulServer的区别  在我们使用Spring Cloud Zuul通常是在启动类上添加@EnableZuulProxy注解或@EnableZuulServer。我们查看一下俩个注解的源码 @EnableZuulProxy @EnableCircuitBreaker @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Import

Spring中对象的创建时机

China☆狼群 提交于 2020-03-08 21:39:05
Spring中对象的创建时机 单例类(也是Spring bean对象默认的scope) 单例类(singleton),会在xml配置文件第一次被Application对象读取的时候,被创建并初始化。 原型类 (prototype) 只有在第一次被取出时,或者作为被取出对象的依赖对象时(会优先于被取出对象),被创建并初始化。 又或者,做idref的引用对象时(ioc容器会取去确认这个bean存不存在,从而创建该对象) ——后来改正: idref只会对照名称,不会创建其对象 来源: https://www.cnblogs.com/woshi123/p/12444751.html

easySpring | 手写SpringIOC、AOP

被刻印的时光 ゝ 提交于 2020-03-08 18:49:49
easySpring 在学到Java的Spring容器概念这里,我参考网上的博客和自己的理解实现了一个简易的Spring容器也就是这个项目。该项目分为 up 和 down 两部分。 up 模块只实现了最简单的IOC和AOP功能,两者并没有联系起来。 后来在 down 中实现了更复杂的IOC、AOP功能,并使两者能够很好地进行协作。 1. 简单的IOC和AOP的实现 1.1 简单的IOC容器实现 先从简单的 IOC 容器实现开始,最简单的 IOC 容器只需4步即可实现,如下: 加载 xml 配置文件,遍历其中的 标签 获取标签中的 id 和 class 属性,加载 class 属性对应的类,并创建 bean 遍历 标签中的 标签,获取属性值,并将属性值填充到 bean 中 将 bean 注册到 bean 容器中 代码结构如下: SimpleIOC // IOC 的实现类,实现了上面所说的4个步骤 SimpleIOCTest // IOC 的测试类 Car // IOC 测试使用的 bean Wheel // 同上 ioc . xml // bean 配置文件 容器实现类 SimpleIOC 的代码: package easySpring . up . ioc ; import org . w3c . dom . Document ; import org . w3c . dom .

新SSM框架整合

拟墨画扇 提交于 2020-03-08 14:31:27
链接【 https://github.com/Davis-Samuel/ssm-order 】 1.父工程ssmbuild 导入pom依赖,资源预留,编码: <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <!--jsp表达式的依赖--> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2<

跟我猜Spring-boot:依赖注入

安稳与你 提交于 2020-03-08 12:03:06
 依赖注入 引&目标 本篇是《跟我猜Spring-Boot》系列的第二篇(Oh,我竟然已经写了10篇了,真不容易)。 在上一篇中,我们实现了 Bean 的创建,但是仅仅是创建而已,并没有真正的实现Bean的注入。那么在今天这篇中,我们要去实现bean的自动注入。 我们之前已经在工程中定义了 SimpleService 和 SimpleController 这两个类,那么这篇文章,我们要把 SimpleService 自动注入到 SimpleController 中; SimpleController.java @Service public class SimpleController { @Autowired private SimpleService simpleService; public SimpleController(){ System.out.println("the controller is created!"); } } 因为目前只是一个控制台程序,没办法进行真正的调用和展示,所以我给 SimpleService 加一个输出,用来表示这个类的的唯一性。 这样, SimpleService 就变成了这样: SimpleService.java @Service public class SimpleService { private String

JSF---->标准转换器(Converter)

故事扮演 提交于 2020-03-08 08:20:17
转换器(Converter)协助模型与视图之间的数据转换 标准转换器 Web应用程序与浏览器之间是使用HTTP进行沟通,所有传送的数据基本上都是字符串文字,而Java应用程序本身基本上则是对象,所以对象数据必须经由转换传送给浏览器,而浏览器送来的数据也必须转换为对象才能使用。 JSF定义了一系列标准的转换器(Converter),对于基本数据型态(primitive type)或是其Wrapper类别,JSF会使用javax.faces.Boolean、javax.faces.Byte、 javax.faces.Character、javax.faces.Double、javax.faces.Float、 javax.faces.Integer、javax.faces.Long、javax.faces.Short等自动进行转换,对于 BigDecimal、BigInteger,则会使用javax.faces.BigDecimal、javax.faces.BigInteger自动进行转换。 至于DateTime、Number,我们可以使用 <f:convertDateTime>、<f:convertNumber>标签 进行转换,它们各自提供有一些简单的属性,可以让我们在转换时指定一些转换的格式细节。 来看个简单的例子,首先我们定义一个简单的Bean: UserBean.java

8 -- 深入使用Spring -- 2...1 搜索Bean类

假如想象 提交于 2020-03-08 07:55:48
      8.2.1 搜索Bean类         既然不再使用Spring配置文件来配置任何Bean实例,那么只能希望Spring会自动搜索某些路径下的Java类,并将这些Java类注册成Bean实例。         tips:Rails框架的处理比较简单,它采用一种所谓的“约定优于配置”的方式,它要求将不同组件放在不同路径下,而Rails框架中是加载固定路径下的所有组件。         Spring没有采用“约定优于配置”的策略,Spring依赖要求程序员显式指定搜索那些路径下的Java类,Spring将会把合适的Java类全部注册成Spring Bean。         Spring通过使用一些特殊的Annotation来标注Bean类,使Spring识别被标注的Java类当成Bean处理。         Spring提供了如下几个Annotation来标注SpringBean:           ⊙ @Component : 标注一个普通的Spring Bean类。           ⊙ @Controller : 标注一个控制器组件类。           ⊙ @Service : 标注一个业务逻辑组件类。           ⊙ @Repository : 标注一个DAO组件类。         如果需要定义一个普通的Spring Bean ,则直接使用