SpringIoc
来源:互联网 发布:mac qq 远程协助 编辑:程序博客网 时间:2024/05/19 08:03
Spring基础
Spring框架常见组件介绍:
- IoC:控制反转,Inversion of Control,实现组件之间的解耦
- Di:依赖注入,Dependency Injection.铜鼓spring实现依赖对象之间的注入
- AOP:Aspect Oriented Programming,面向切面的编程,是面向对象编程的有益补充
- ORM:提供了与其他第三方持久层框架的整和技术,从而实现事务控制
- SpringMVC:主流的易于使用的MVC框架
- SpringData,SpringBoot等拓展技术
Spring IoC概述:
- 实体类
package com.study.entity;import java.util.Arrays;import java.util.Calendar;import java.util.Date;import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set;/** * @author dell * */public class User { private Integer id; private String username; private String password; private Dept dept; private Date date; private Calendar cal; private String[] love; private List<String> list; private Set<String> set; private Map<String, String> map; private Properties pro; public Dept getDept() { return dept; } public void setDept(Dept dept) { this.dept = dept; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public Calendar getCal() { return cal; } public void setCal(Calendar cal) { this.cal = cal; } public String[] getLove() { return love; } public void setLove(String[] love) { this.love = love; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public Set<String> getSet() { return set; } public void setSet(Set<String> set) { this.set = set; } public Map<String, String> getMap() { return map; } public void setMap(Map<String, String> map) { this.map = map; } public Properties getPro() { return pro; } public void setPro(Properties pro) { this.pro = pro; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public User() { super(); } public User(Integer id, String username, String password) { super(); this.id = id; this.username = username; this.password = password; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + ", dept=" + dept + ", date=" + date + ", cal=" + cal + ", love=" + Arrays.toString(love) + ", list=" + list + ", set=" + set + ", map=" + map + ", pro=" + pro + "]"; }}
- IoC容器(BeanFactory):在应用程序中使用IoC容器实现应用中所有的对象(bean)的同一管理,包括创建,统一注入,生命周期,范围等.
- 需要引入的包
- commons-logging-1.2.jar
spring-beans-4.3.13.RELEASE.jar
spring-context-4.3.13.RELEASE.jar
spring-context-support-4.3.13.RELEASE.jar
spring-core-4.3.13.RELEASE.jar
spring-expression-4.3.13.RELEASE.jar - IoC实现的方式
- 通过无参构造方法创建Bean
<bean name="user1" class="com.study.entity" />
- 通过静态工厂创建Bean
<bean name="cal" class="java.util.Calendar" factory-method="getInstance"/>
- 通过实例工厂创建Bean
*<bean name="factory" class="com.study.Factory.InstanceUser"></bean>
<bean name="user2" factory-bean="factory" factory-method="getUser"></bean>
- 通过无参构造方法创建Bean
- commons-logging-1.2.jar
- 需要引入的包
如果实体类中有properties属性,属性值注入方法
方法1通过< property>标签
<bean name="user1" class="com.study.entity.User"> <property name="pro"> <props> <prop key="class">com.study.entity</prop> <prop key="username">root</prop> <prop key="password">1234</prop> </props> </property>
方法二:
<util:properties location="db.properties" id="db1"></util:properties> <bean name="user1" class="com.study.entity.User"> <property name="pro" ref="db1"> </property> </bean>
Bean的作用范围:在bean标签中使用scope规范定义bean的范围,其值可以是:
(1)singleton:单例,默认范围,在java 应用中使用
(2)prototype:多例,在java 应用中使用.在ssh或者ssm整合后对应Action或者Controller的实例都将纳入Spring的IoC容器统一
管理,注意bean的作用范围是prototype。
(3)request:在web应用中使用
(4)session:在web应用中使用
Di注解:
首先在xml引入
<context:component-scan base-package="com.study"></context:component-scan>
1、IoC注解:
(1)@Component:通用的使用在类上的IoC的注解,相当于,不建议使用这个注解了
(2)@Scope:定义bean的作用范围
(3)@Repository:使用在Dao层的类上的注解,用户创建Dao层对象
(4)@Service:使用在业务逻辑层的注解用于创建Service层对象
(5)@Controller:使用在控制层类上的注解
2、依赖注入的注解:对于依赖的注入可以写在属性上面或者setter方法上面
(1)@Autowired:根据类型进行注入
(2)@Resource:默认根据类型注入,如果类型相同可以根据名字进行注入
阅读全文
0 0
- springIoC
- springIoc
- SpringIOC
- springIOC
- springIOC
- springIOC
- SpringIOC
- SpringIOC
- SpringIOC
- springIOC
- springIOC
- SpringIoc
- springIOC
- SpringIOC
- SpringIOC
- springIOC
- SpringIOC
- SpringIoC
- vue全套
- 关于 线性规划 非线性规划 与 凸优化
- el表达式的四大内置对象
- HDOJ 1023 卡特兰数
- Java集合概述
- SpringIoc
- 编写更优质的css
- 如何判断C语言输入类型正确与否
- Android Studio混淆模板及常用第三方混淆(看了都说好)
- 我的第一个微信小程序
- 机器学习
- java 导入导出Excel工具类ExcelUtil
- 阿里天池比赛报告的一点总结
- 文章标题