spring的作用

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

spring体系结构

Spring特点

控制反转和依赖注入的区别

控制反转IOC(Inverse of Control):将对象的创建权反转给(交给)Spring

依赖注入(DI (Dependency Injection)):从应用程序的角度在描述,应用程序依赖容器创建并注入它所需要的外部资源;

搭建spring的前提条件:

安装好jdk和maven

spring基本配置

父类项目配置xml:


我们使用spring得有业务对象和配置元数据

在父项目创建一个子项目

在子项目中修改xml


创建一个类:

beans配置

app.xml:

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--让springIoc容器 默认是单例模式--><bean id="owner" class="org.sl.marhouse.eneities.Owner"></bean><!-- <bean id="owner" class="org.sl.marhouse.eneities.Owner" scope="prototype"></bean> 原型,每次使用bean会创建新的对象-->
</beans>

测试:

  @Testpublic void testSpring(){//从容器当中获取一个BeanOwner owner=context.getBean("owner4", Owner.class);if (owner==null){System.out.println("没有相应的实例");}else {System.out.println("有响应的实例"+owner.toString());}}@Beforepublic void init(){context = new ClassPathXmlApplicationContext("app.xml")

Bean作用域:

Bean延迟加载:

bean的默认lazy-init=false,不需要延迟加载,IoC 容器将在服务器启动的时候,会解读ApplicationContext.xml文件,不管你是不是要使用该bean,都会先进行实例化。这会造成启动的时候,特别的慢。但是,也是最保险的方法。

<bean id="owner" class="org.sl.marhouse.eneities.Owner" lazy-init=false</bean>

父项目xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.sl</groupId><artifactId>springdemo</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>01-spring-demo</module></modules><!-- 版本控制--><properties><spring.version>5.3.10</spring.version><lombok.version>1.18.22</lombok.version><mysql.version>8.0.26</mysql.version><druid.version>1.2.3</druid.version><junit.version>4.12</junit.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.encoding>UTF-8</maven.compiler.encoding><java.version>9</java.version><maven.compiler.source>9</maven.compiler.source><maven.compiler.target>9</maven.compiler.target></properties><!--父项目的包管理,以便使用这个父项目下的子项目(子模块)使用的第三方包--><dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency></dependencies></dependencyManagement>
</project>

子项目配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springdemo</artifactId><groupId>org.sl</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>01-spring-demo</artifactId><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.encoding>UTF-8</maven.compiler.encoding><java.version>9</java.version><maven.compiler.source>9</maven.compiler.source><maven.compiler.target>9</maven.compiler.target></properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency></dependencies></project>

app.xml配置:

<?xml version="1.0" encoding="utf-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--让springIoc容器 默认是单例模式--><bean id="owner" class="org.sl.marhouse.eneities.Owner"></bean><!-- <bean id="owner" class="org.sl.marhouse.eneities.Owner" scope="prototype"></bean> 原型,每次使用bean会创建新的对象-->
</beans>

测试:

  @Testpublic void testSpring(){//从容器当中获取一个BeanOwner owner=context.getBean("owner4", Owner.class);if (owner==null){System.out.println("没有相应的实例");}else {System.out.println("有响应的实例"+owner.toString());}}@Beforepublic void init(){context = new ClassPathXmlApplicationContext("app.xml")

Spring基本配置相关推荐

  1. Spring中配置DataSource数据源的几种选择

    Spring中配置DataSource数据源的几种选择 在Spring框架中有如下3种获得DataSource对象的方法: 从JNDI获得DataSource. 从第三方的连接池获得DataSourc ...

  2. java避免使用orderby_java – Spring安全配置@Order不是唯一的例外

    我试图在我的Spring Security配置中注册多个过滤器,但是我总是得到相同的异常: 04-Nov-2015 14:35:23.792 WARNING [RMI TCP Connection(3 ...

  3. Spring AOP源码分析(六)Spring AOP配置的背后

    本篇文章主要对Spring AOP配置背后进行了哪些事情做下说明.还是如上类似的工程,在xml中AOP拦截配置如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 < ...

  4. Spring 数据源配置与应用

    Spring 数据源配置与应用 Spring对数据库操作都依赖数据源. Spring有默认的数据源实现org.springframework.jdbc.datasource.DriverManager ...

  5. Spring——AOP配置时的jar包异常

    Spring--AOP配置时的jar包异常 参考文章: (1)Spring--AOP配置时的jar包异常 (2)https://www.cnblogs.com/dyllove98/p/3180193. ...

  6. Spring Boot 配置元数据指南

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 遗失的拂晓 来源 | 公众号「锅外的大佬」 1. 概览 在编写 Spring Bo ...

  7. struts+spring的配置方式总结

    现在最流行的j2ee的程序,一般都是用struts+spring+hibernate框架做的,spring+hibernate的配置方式很简单,这里就不说了,下面对struts+spring的几种配置 ...

  8. spring cloud 配置中心

    1. spring cloud配置中心server 1.1 创建git仓库 首先在github上搭建一个存储配置中心的仓库,需要创建两个分支,一个是master,一个是dev分支.自己学习可以用公开库 ...

  9. spring MVC配置详解

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...

  10. Spring xml 配置使用外部config 文件

    Spring xml 配置使用外部config 文件 当使用Spring framework后, 我们一般会把db connection的信息写在spring的bean config xml里面. 例 ...

最新文章

  1. UITextField 详解
  2. nextcloud安装教程
  3. java中的正则表达式捕获组与引用的概念
  4. Python(七) 元组+集合+随机+string
  5. 第四章使用jQuery操作DOM元素
  6. [urllib]urlretrieve在python3
  7. sae项目服务器,基于SAE的游戏服务器: Server on SAE for RGSS Games 部署在SAE上的简易游戏服务器,为用 RMXP/VX/VA 开发的游戏提供网络服务...
  8. Js 怎么遍历json对象所有key及根据动态key获取值(根据key值获取相应的value值)...
  9. 如何控制事物_如何使用QC七大手法?62页QC老七大工具,果断收藏
  10. python读写大文件 meoryerror_Python – 如何在没有MemoryError的情况下gzip大文本文件?...
  11. Leetcode每日一题:514.freedom-trail(自由之路)
  12. 不良事件总结怎么写_护理不良事件总结分析.doc
  13. Matlab系列教程_基础知识_基本矩阵操作
  14. oracle sql优化的几种方法
  15. 十进制小数转二进制用计算机操作,十进制转二进制
  16. java文件上传判重姿势浅谈
  17. 手动实现获取微信openid
  18. 阿里巴巴数据中台实践
  19. python 抢票程序_程序员硬核Python抢票教程”,帮你抢回家车票
  20. C++--struct的用法

热门文章

  1. 实现全排列算法(C++)
  2. img图片如何自适应盒子尺
  3. Ansys Workbench拓扑优化教程
  4. Yearn帝国正在崛起,有多少DeFi项目开始瑟瑟发抖
  5. BeetlSQL框架学习(一)——初识BeetlSQL,特点,内置sql的使用,Pojo代码生成等...
  6. 使用VuePress搭建在线文档网站
  7. Vue+JavaScript实现鼠标滑轮滑动控制元素横向滚动
  8. 关于 ORA-00918: column ambiguously defined 的错误
  9. 微信小程序-设置全局的颜色变量
  10. 前端编写邮件html各邮箱兼容及注意事项