Spring基本配置
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基本配置相关推荐
- Spring中配置DataSource数据源的几种选择
Spring中配置DataSource数据源的几种选择 在Spring框架中有如下3种获得DataSource对象的方法: 从JNDI获得DataSource. 从第三方的连接池获得DataSourc ...
- java避免使用orderby_java – Spring安全配置@Order不是唯一的例外
我试图在我的Spring Security配置中注册多个过滤器,但是我总是得到相同的异常: 04-Nov-2015 14:35:23.792 WARNING [RMI TCP Connection(3 ...
- Spring AOP源码分析(六)Spring AOP配置的背后
本篇文章主要对Spring AOP配置背后进行了哪些事情做下说明.还是如上类似的工程,在xml中AOP拦截配置如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 < ...
- Spring 数据源配置与应用
Spring 数据源配置与应用 Spring对数据库操作都依赖数据源. Spring有默认的数据源实现org.springframework.jdbc.datasource.DriverManager ...
- Spring——AOP配置时的jar包异常
Spring--AOP配置时的jar包异常 参考文章: (1)Spring--AOP配置时的jar包异常 (2)https://www.cnblogs.com/dyllove98/p/3180193. ...
- Spring Boot 配置元数据指南
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 遗失的拂晓 来源 | 公众号「锅外的大佬」 1. 概览 在编写 Spring Bo ...
- struts+spring的配置方式总结
现在最流行的j2ee的程序,一般都是用struts+spring+hibernate框架做的,spring+hibernate的配置方式很简单,这里就不说了,下面对struts+spring的几种配置 ...
- spring cloud 配置中心
1. spring cloud配置中心server 1.1 创建git仓库 首先在github上搭建一个存储配置中心的仓库,需要创建两个分支,一个是master,一个是dev分支.自己学习可以用公开库 ...
- spring MVC配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...
- Spring xml 配置使用外部config 文件
Spring xml 配置使用外部config 文件 当使用Spring framework后, 我们一般会把db connection的信息写在spring的bean config xml里面. 例 ...
最新文章
- UITextField 详解
- nextcloud安装教程
- java中的正则表达式捕获组与引用的概念
- Python(七) 元组+集合+随机+string
- 第四章使用jQuery操作DOM元素
- [urllib]urlretrieve在python3
- sae项目服务器,基于SAE的游戏服务器: Server on SAE for RGSS Games
部署在SAE上的简易游戏服务器,为用 RMXP/VX/VA 开发的游戏提供网络服务...
- Js 怎么遍历json对象所有key及根据动态key获取值(根据key值获取相应的value值)...
- 如何控制事物_如何使用QC七大手法?62页QC老七大工具,果断收藏
- python读写大文件 meoryerror_Python – 如何在没有MemoryError的情况下gzip大文本文件?...
- Leetcode每日一题:514.freedom-trail(自由之路)
- 不良事件总结怎么写_护理不良事件总结分析.doc
- Matlab系列教程_基础知识_基本矩阵操作
- oracle sql优化的几种方法
- 十进制小数转二进制用计算机操作,十进制转二进制
- java文件上传判重姿势浅谈
- 手动实现获取微信openid
- 阿里巴巴数据中台实践
- python 抢票程序_程序员硬核Python抢票教程”,帮你抢回家车票
- C++--struct的用法
热门文章
- 实现全排列算法(C++)
- img图片如何自适应盒子尺
- Ansys Workbench拓扑优化教程
- Yearn帝国正在崛起,有多少DeFi项目开始瑟瑟发抖
- BeetlSQL框架学习(一)——初识BeetlSQL,特点,内置sql的使用,Pojo代码生成等...
- 使用VuePress搭建在线文档网站
- Vue+JavaScript实现鼠标滑轮滑动控制元素横向滚动
- 关于 ORA-00918: column ambiguously defined 的错误
- 微信小程序-设置全局的颜色变量
- 前端编写邮件html各邮箱兼容及注意事项