框架学习之Spring(一IOC)----HelloWrod
一、概述
Spring是一个开源框架,它的核心是控制反转(IOC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。
EE 开发分成三层结构:
* WEB 层:Spring MVC.
* 业务层:Bean 管理:(IOC)
* 持久层:Spring 的 JDBC 模板.ORM 模板用于整合其他的持久层框 架
注:Spring框架既可以单独使用 ,也可以结合其他优秀框架一起使用。
二、环境搭建
开发包:
下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring 解压(Spring目录结构:docs api和开发规范)
导入jar包后在src下创建核心配置文件 applicationContext.xml该文件名称和位置不固定
二、IOC
IOC:Inversion of Control 控制反转,意味着将设计好的类交给系统去控制,而不是在自己的内部控制,这这里指的是对象的创建反转给Spring。其作用是实现了程序的解耦合
IOC图解:

案例:以User类为例
1创建类
public class User{
private String username;
private User user ;
public void User(){};
public void User(User user){
this.user = user;
}
public void User(String username){
this.username = username;
}
public void show(){
System.out.println("Hello IOC!");
}
2创建名为applicationContext.xml配置文件并引入scheme约束

3配置参数
在applicationContext.xml配置文件中配置一下内容
<bean id = "user" class = "cn.User"></bean>
4.测试
public static void main(String [] args){
//加载Spring配置文件,创建对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//得到配置创建的对象
User user = (User) context.getBean("user");
user.show();
}
四、Spring的bean管理(xml方式)
bean实例化的三种方式:
1.使用类的无参构造
<bean id = "user" class = "cn.User"></bean>
2.使用静态工厂创建
》创建静态方法返回类对象
public class BeanFactory{
public static User getBean(){
return new User();
}
}
》配置文件

3.使用实例工厂创建
》创建工厂类
public class BeanFactory{
public User getBean(){
return new User();
}
}
》配置文件

bean标签常用属性:
id:给bean命名,id属性值任意(不能含特殊符号),根据id得到配置对象。
class:创建对象类所在的全路径
name:功能和id一样,但是在name属性中可以包括特殊符号
Scope:默认值为singleton(单例),prototype(多例),request(把创建的对象保存到request域中),session(把创建的对象保存到session域中),globalSession(把创建的对象保存到globalSession中);
五、属性注入
1.使用有参构造注入属性
<bean id = "user2" class = "cn.User" >
<constructor-arg name = "username" value = "ZhangSan"></constructor-org>
</bean>
2.使用set方法注入属性(重点)
<bean id = "user3" class = "cn.User">
<!--name为属性名称 value为设置的具体值-->
<property name = "username" value = "LiSi"></property>
</bean>
3.P名称空间注入
首先引入约束

配置文件
<bean id = "user" class = "cn.User" p:name = "LiHong"></bean>
注入对象类型的属性
<bean id = "user3" class = "cn.User" ></bean>
<bean id = "user4" class = "cn.User" >
<property name = "user3" ref = "user"></property>
</bean>
注入复杂属性
<bean id="person" class="cn.User">
<!-- 数组 -->
<property name="arrs">
<list>
<value>小王</value>
<value>小马</value>
<value>小宋</value>
</list>
</property>
<!-- list -->
<property name="list">
<list>
<value>小奥</value>
<value>小金</value>
<value>小普</value>
</list>
</property>
<!-- map -->
<property name="map">
<map>
<entry key="aa" value="lucy"></entry>
<entry key="bb" value="mary"></entry>
<entry key="cc" value="tom"></entry>
</map>
</property>
<!-- properties -->
<property name="properties">
<props>
<prop key="driverclass">com.mysql.jdbc.Driver</prop>
<prop key="username">root</prop>
</props>
</property>
</bean>
六、注解开发
注解创建对象
》1.首先应导入aop的jar包。在配置文件中引入约束

》2.配置文件:
<!--开启注解扫描 即扫描指定包下类、方法、属性上面是否有注解--> <context:component-scan base-package = "cn"></context:component> <!--只扫描属性上的注解 <context:annotation-config></context:annotation-config> -->
》3.注解创建对象

》4.测试

注:
@Scope是配置对象是单例还是实例用的。
注解注入属性
1.自动注入@Autowired

2.@Resource注入

注解和配置文件混合使用注入属性:
1.创建对象是使用配置文件实现的
<bean id = "userDao" class = "cn.UserDao"></bean> <bean id = 'userService" class = "cn.UserServiece"></bean>
2.注入属性的操作通过注解方式实现
@Resource(name = "userDao") private UserDao userDao;
框架学习之Spring(一IOC)----HelloWrod的更多相关文章
- Spring框架学习(2)IOC学习
内容源自:IOC理解 spring ioc注入的三种方式 ioc工厂bean深入理解 耦合性,在java中表现为类之间的关系,耦合性强说明类之间的依赖关系强: 侵入性:框架对代码的侵入: 在传统 ...
- Spring 框架学习(1)--Spring、Spring MVC扫盲
纸上得来终觉浅,绝知此事要躬行 文章大纲 什么是spring 传统Java web应用架构 更强的Java Web应用架构--MVC框架 Spring--粘合式框架 spring的内涵 spring核 ...
- Spring框架学习03——Spring Bean 的详解
1.Bean 的配置 Spring可以看做一个大型工厂,用于生产和管理Spring容器中的Bean,Spring框架支持XML和Properties两种格式的配置文件,在实际开发中常用XML格式的配置 ...
- Spring框架学习02——Spring IOC 详解
1.Spring IOC的基本概念 IOC(Inverse of Control)反转控制的概念,就是将原本在程序中手动创建对象的控制权,交由Spring框架管理.当某个Java对象(调用者)需要调用 ...
- Spring 框架学习—控制反转(IOC)
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建. 简单来说,Spring是一个分层的JavaSE/EEfull-st ...
- spring框架学习(二)——注解方式IOC/DI
什么是注解 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点: 1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分 ...
- [spring入门学习笔记][spring的IoC原理]
什么叫IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependency ...
- 【spring源码学习】spring的IOC容器之自定义xml配置标签扩展namspaceHandler向IOC容器中注册bean
[spring以及第三方jar的案例]在spring中的aop相关配置的标签,线程池相关配置的标签,都是基于该种方式实现的.包括dubbo的配置标签都是基于该方式实现的.[一]原理 ===>sp ...
- 【spring源码学习】spring的IOC容器在初始化bean过程
[一]初始化IOC的bean的时候Spring会执行的一些回调方法 (1)spring bean创建的前置处理 =>ApplicationContextAwareProcessor 在创建bea ...
随机推荐
- 微信小程序开发之--”emplate模板“的应用
第一步:定义模板 ①:新建一个template文件夹用来管理项目中所有的模板(本文案例定义文件夹名为:temp): ②.新建一个wxml文件来定义模板(本文案例定义文件夹名为:temp.wxml): ...
- C语言第四次博客作业--嵌套循环
一.PTA实验作业 题目1:编程打印空心字符菱形 1. 本题PTA提交列表 2. 设计思路(流程图) 3.本题调试过程碰到问题及解决办法 思考过程:将问题拆解为菱形问题和字母变化问题两部分 1> ...
- Java飞机大战源代码
刚学不久java,做了一个飞机大战的小小小小游戏,现在把这个思路总结以及代码分享出来.大佬别吐槽(emmmmmm .....开发环境:jdk1.7 开发工具:eclipese PlanelJPanel ...
- npm包使用语义化版本号
npm 采用语义版本管理软件包.所谓语义版本,就是指版本号为a.b.c的形式,其中a是大版本号,b是小版本号,c是补丁号. 一个软件发布的时候,默认就是1.0.0版.如果以后发布补丁,就增加最后一位数 ...
- Django+xadmin打造在线教育平台(六)
九.课程章节信息 9.1.模板和urls 拷贝course-comments.html 和 course-video.html放入 templates目录下 先改course-video.html,同 ...
- SpringBoot03 项目热部署
1 问题 在编写springBoot项目时,经常需要修改代码:但是每次修改代码后都需重新启动,修改的代码才会生效 2 这么实现IDEA能够像Eclipse那样保存过后就可以自动进行刷新呢 将sprin ...
- Java 并发基础——线程安全性
当线程安全:多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么久称这个类是线程安全的. 在线程 ...
- 【福大软工】 W班级总成绩排名3
评分链接: alpha测试 软件产品案例分析 总分排名: 团队千帆竞发图 总结: 本次排名是alpha测试 软件产品案例分析 两次排名的汇总. 1.alpha测试小组评价: 听说:10篇冲 ...
- 听翁恺老师mooc笔记(12)--结构中的结构
结构数组: 和C语言中的int,double一样,一旦我们做出一个结构类型,就可以定义这个结构类型的变量,也可以定义这个结构类型的数组.比如下面这个例子: struct date dates[100] ...
- 敏捷冲刺每日报告--day2
1 团队介绍 团队组成: PM:齐爽爽(258) 小组成员:马帅(248),何健(267),蔡凯峰(285) Git链接:https://github.com/WHUSE2017/C-team ...