Spring和Spring的配置
Spring框架
1、什么是spring
spring是一个分层的java EE应用full-stack轻量级开源框架,以IOC(反转控制)和AOP(面向切面编程)为内核
2、Spring的优势
1)方便解耦、简化开发通过spring提供的IOC容器,可以将对象间的依赖关系交给spring进行控制2)AOP编程的支持3)声明式事物的支持4)方便程序的测试5)方便集成各种优秀的框架spring对各种优秀的框架的支持 6)减低Java EE API的使用难度7)经典学习的范例
3、Spring的开发步骤
1)导入spring开发的基本包坐标2)编写Dao接口和实现类3)创建Spring核心配置文件4)在Spring配置文件中配置UserDaoImpl5)使用spring的API获得Bean实例
Spring Bean的配置
Spring配置文件
配置bean
class:bean的全类名,通过反射的方式在IOC容器中创建Bean,所以要求Bean中必须无参数
通过构造方法来配置Bean的属性
<bean id="car" class="com.atguigu.spring.beans.car"> <constructor-arg values="Audi" index="0"><constructor-arg> <constructor-arg values="ShangHai" index="1"><constructor-arg> <constructor-arg values="30000" type="double"><constructor-arg><bean>
<bean>标签 ID属性:在容器中bean实例的唯一标识,不允许重复 class属性:要实例化的Bean的权限定名 scope属性:Bean的作用范围,常用的是Singletion(默认)和prototype<property>标签:属性注入 name属性:属性名称 value属性:注入的普通属性值 ref属性:注入的对象引用值<list>标签<map>标签<properties>标签<constructor-arg>标签<import>标签:导入其他的Spring的分文件
使用构造器注入属性值可以指定参数的位置和参数的类型,以区分重载的构造器
<bean id="car2" class="com.atguigu.spring.beans.car">` <constructor-arg values="Baoma" type="java.Lang.String"><constructor-arg> <constructor-arg values="ShangHai" type="java.Lang.String"><constructor-arg> <constructor-arg values="240" type="int"><constructor-arg><bean>
ID:标识容器中的bean,ID唯一
1、创建spring的IOC容器对象
ApplicationContext ctx = new ClassPathXmlApplicationContext(application);
2、从IOC容器中获取Bean实例
3、调用hello方法
BeanFactory:IOC容器本身实现
ApplicationContext:从类路径加载对象
Spring 依赖注入的方式
属性注入:通过setter方法注入Bean的属性或依赖的对象,最常用的注入方式
4、Spring相应API
4.1 ApplicationContext的实现类
//测试手动去创建的c3p0的数据源
public void test1() throws PropertyVetoException, SQLException {
ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mysql"); dataSource.setUser("root");
dataSource.setPassword("123456");
Connection conn = dataSource.getConnection();
System.out.println(conn);
conn.close();}
Spring原始注解
@Component 使用在类上用于实例化Bean1、首先添加@Component("userDao")注解,需要解析加入@Autowired@Qualifier("userDao")注解2、在xml文件中,加入```
<!-- 配置组件扫描:告诉spring在哪个包上的bean需要扫描--> <context:component-scan base-package="com.ityxnu"/>
```如果使用的xml的注解方法,那么set方法是不能删除;如果使用的是注解方法,set方法是可以删除的@Autowried 按照数据类型从spring容器中进行匹配 的,但是主要此处@Qualifier结合@Autowried@Controller 使用web层类上用于实例化Bean@Service 使用在service层类上用于实例化Bean@Repository 使用在dao层类上用于实例化Bean@Autowired 使用在字段上用于根据类型依赖注入@Qualifier 结合@Autowired 一起使用于根据名称进行依赖注入@Resource 相当于@Autowired +@Qualifier,按照名称进行注入@Value 注入普通属性@Scope 标注Bean的作用范围
spring新注解
@Configuration 用于指定当前类是一个spring配置类,当创建容器时会从该类加载注解@ComponentScan 用于指定Spring在初始化容器时要扫描的包,作用和在Spring的xml配置文件中的<context:component-scan base-package="com.itheima"/>一样@Bean 使用在方法上,标注将该方法的返回值存储到Spring容器中@PropertySource 用于加载.properties文件中的位置@Import 用于导入其他配置类
Spring和Spring的配置相关推荐
- Spring之事务管理配置
1. 基于注解的事务配置 1. 在需要添加事务的方法上加上@Transactional注解 2. Spring的配置文件中配置事务管理器 1 <!-- 添加事务管理器组件DataSourceTr ...
- spring amqp rabbitmq fanout配置
基于spring amqp rabbitmq fanout配置如下: 发布端 <rabbit:connection-factory id="rabbitConnectionFactor ...
- Struts2+spring+jdbc 以xml配置形式整合
今天做作业,练习一下Struts2+spring+jdbc 以xml配置形式整合 整合步骤: 工程结构图: 重要配置文件 web.xml <?xml version="1.0" ...
- spring cloud config将配置存储在数据库中
点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Spring Cloud Config Server最常见是将配置文件放在本地或者远程Git仓库, ...
- Spring 3.1 事务配置
版权声明:原创作品,谢绝转载!否则将追究法律责任. Spring 3.1 事务配置 spring发的包最好用的是2.5.6:所依赖的包全部都有,可是后来的版本都缺这少那的,导致开发中遇到各种各样的问题 ...
- Spring事务——Spring 2.X的事务配置策略
为什么80%的码农都做不了架构师?>>> Spring 2.X的事务配置策略 虽然前面介绍的TransactionProxyFactoryBean配置策略简单易懂,但配置起来极 ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
- spring(16)------spring的数据源配置
spring(16)------spring的数据源配置 在spring中,通过XML的形式实现数据源的注入有三种形式. 一.使用spring自带的DriverManagerDataSource 使用 ...
- Quartz 在 Spring 中如何动态配置时间
在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间 ...
- 面向切面(AOP)之Spring接口方式 schema配置方式 aspectj注解方式
一.初识AOP 关于AOP的学习可以参看帮助文档:spring-3.2.0.M2\docs\reference\html目录下index.html的相关章节 1.AOP:Aspect-O ...
最新文章
- 虚拟机VMware14安装kali-linux-2019.1-amd64
- 写markdown用于Github上readme.md文件
- 对OCR文字识别软件进行自动分析和识别设置的教程
- 双非计算机专业考研西安交通大学,2020双非一战计算机专硕初试403经验贴
- vue key重复_【第2112期】 import { reactive } from #39;vue#39;
- [每天一个知识点]26-软件工程-有多少管理是为了满足管理者的掌控感
- PLSQL Developer图形化窗口创建数据库全过程
- 从C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\mt.exe返回错误
- python读取一个文件的大小_Python-读取文件的大小
- 计算机软件质量保证计划示例
- InstallShield 取消特定安装步骤
- InstallShield Limited Edition Project下载及进行打包发布汇总
- js实现当日期转农历日期
- 139显示无法imap服务器,139邮箱客户端 imap服务器
- 爽一把手写Bundle Adjustment
- 谷歌招聘 变态15题你会做几道?
- ”微服务一条龙“最佳指南-“最佳实践”篇:大厂服务端部署
- The page has expired due to inactivity. Please refresh and try again.
- 魔力宝贝服务器修改技能经验,【石器时代】 GM添加、命令使用、经验及倍数设置、宠添加、查找及修改【附图】...
- 简单聊聊Betaflight的三种飞行模式