- Spring是用来将普通的javabean变成ejb来处理业务
- Spring是一个轻量级的用于简化商业应用开发的容器框架。它的核心是控制反转(IOC)【也叫依赖注入】和(AOP)面向切片编程
- IOC:控制反转
bean产生的实例交给Spring容器,基于工厂设计模式
- 依赖注入
配置依赖类,用这个类代替xml文件
配置要托管的bean
@Configuration 配置配置类
@ComponentScan(package) 配置装配类的包路径
@Component(name) 配置装配类的名字
@Autowired 配置装配类
@Qualifier(name) 配置指定装配类
- AOP:面向切面编程 ------基于代理设计模式
切面–要切入的类
切点–想要切入的方法
通知–额外执行的操作
利用标注技术构造功能型切面
- 自己写切面,可以理解为业务的代理类,内部是有切点和通知构成的
- 切点:主要有两个属性
//包名 类名 方法名 参数列表
@Pointcut("execution(* demo02.*.*(..))")
1、给切点起名字:selfPointCut()
切点的名字即使方法名+(参数列表)
2、给切点定义切入的路劲或叫范围
- 通知
在某个切点上要切入的功能
- 代理模式
- 被代理对象,真正的业务实现者
- 代理对象,往往会在真正业务实现的基础上增加额外的代码实现
- 同一系统,代理对象和被代理对象必须是同一个系统,体现在代码中是实现了同一个接口
- Spring和Junit整合
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=config.AppConfig.class) //用于配置配置器类
整合后直接用生成的bean对象即可,不需要创建spring容器,再由容器获得bean对象
8. spring和jdbc整合
下载jar包
配置
//配置jdbcConfig:
@Bean:DataSource //配置数据源
@Bean:JdbcTemplate //spring简化,jdbc的操作就是利用此对象完成的
@Bean(name="") 和 @Component("")都是用来声明注册bean对象时使用的,
只不过@Bean(name="")用在方法上,@Component("")用在类上。但是它们都可以使用@Autowired来调用,@Autowired默认调用类名的bean对象是bean类类名的首字符小写的格式,如果需要调用特定的bean对象需要使用@Qualifier("")
9. Spring和SpringMVC整合
- tomcat(web容器在启动的时候回自己找WebApplicationInitializer接口的实现类)并调用该类的onStartup方法
- 为了构造Spring容器
- 把servletContext交给spring容器管理
- 在servletContext中添加一个servlet,这是springMVC的核心servlet
它也是MVC模式中的C(控制器)
以后就不写servlet了,写springMVC的Controller,写好Controller
springMVC就会用自己的那个核心控制器(Servlet进行转发相应的请求)
@Controller("/act"):声明在类上,用于注册控制器
@RequestMapping(value=url,method=RequestMethod.POST):
默认方法是GET,可修改为POST
声明在方法上,用于配置访问路径相当于@WebServlet(),只不过@WebServlet()声明在类上
使用ModelAndView对象可以将请求发送到对应的jsp页面
modelAndView.setViewName(src);