Spring开发步骤:
Sping开发步骤:
Spring配置文件:
Bean标签基本配置:
Bean标签的范围配置:
同一地址 singleton在加载文件的时候就调用了其中的无参构造方法
不同地址 prototype再加载文件的时候还没有调用其中的无参构造方法,在创建对象的时候才调用无参构造方法
Bean的声明周期配置:
Bean实例化的三种方式:
无参构造方法实例化:(最常用的方法)
工厂静态方法实例化 :
工厂实例方法实例化:
Bean的依赖注入分析:
运用set方法将UserDao带入到UserService中
通过有参构造把UserDao在UserService中调用
Bean的依赖注入概念:
SET方法注入:
构造方法注入:
Bean的依赖注入的数据类类型:
普通数据类型的注入:
集合数据类型的注入:
引入其他配置文件(import resource):
当你在一个xml文件下写入如上图所示的代码,就可以将所输入的其他xml文件引入该xml文件中。
Spring相关API:
1.直接写你在xml中命名的id名字
2. getBean()方法的使用:
Spring配置数据源:
数据源(连接池)的作用:
数据源的开发步骤:
spring配置数据源:
加载外部的properties文件:
Spring注解开发:Spring原始注解:
@Componment,@Autowired,@Qualified
此系列操作后,就可以完成save方法的输出
@Repository(仓库层)
和Componment方法使用相同,只不过可读性更强
@Service(服务层 )
同上
如果使用的是注解方式可以把set方法去掉,同样可以输出save方法,原理就是通过反射调用set方法进行注入
存在一个userDao的bean类,找到后注入,如果Spring容器中有多个userDao的bean类,他就不知道怎么注入了
@Resource:
@Resource就相当于@Autowired+@Qualified
@Value:
@Scope:
和之前的应用效果一样
@PosConstruct,@PreDestory
注意:1bean实例的作用范围定义为prototype(多例)之后就不能使用PreDestroy注解了,需要定义为singleton
2.创建的ClassPathXmlApplicationContext由ApplicationContext接收,因为容器在没执行完成之前就已经关闭了,所以需要手动close(关闭)掉,但ApplicationContext没有close方法,所有并不能执行,会提前关闭
Spring新注解:
eg:
1. 2.
3.
Spring整合junit:
Spring与web的环境集成:
1.配置ContextLoaderListener监听器
2.使用WebApplicationContextCutils获取应用上下文
ServletContextListener:
全局化参数的使用:
优化:
Spring提供获取应用上下文的工具:
接下来的做法:
Web层的Servlet的一般步骤:
//接受请求参数,封装实体,访问业务层,接收返回结果,指派页面