1-spring管理bean的两种方式
原理:Spring通过超大的Map集合来管理对象,默认条件下是单例的
格式:Map<K,V> key:bean的ID / @Bean注解的方法名
value:实例化后的对象
要求:容器中的对象的名称key,必须不同.
-1-通过bean标签管理
<bean id="a" class="com.tedu.controller.A"/>
-2-通过bean注解管理
@Bean public A a(){ return new A(); }
2-AOP的作用:为了扩展业务的方法,在代码中实现了业务解耦
切面构造要素:切面 = 切入点 + 通知
以AOP的形式解决事务控制问题:
public void saveUser(User user){ userMapper.insert(user); } public void updateUser(User user){ userMapper.update(user); }
@Component
@Aspect
public class TxAspect{
/*事务/缓存/异常处理可能会使用环绕通知*/
/*如果需要控制目标方法的执行,使用环绕通知*/
@Around("execution(* com.jt.service..*(..))")
public Object around(ProceedingJoinPoint joinPoint){
try{
TX.begin();
joinPoint.proceed();//让目标方法执行
Tx.commit();
}catch(){
Tx.rollback();
}
}
切入点表达式:
-1-Bean 按照某个Bean(类)拦截
-2-within(包名.类名) 按照类拦截
-3-execution(返回值类型 包名.类名.方法名(参数列表))
-4-@annotaion(包名.注解名)
3-SpringMvc
SpringMvc是前台框架,与用户进行交互.底层将Servlet进行封装.
简化程序员的操作的过程
<input name="username" value="张三">
<input name="password" value="123456">
[提交按钮]
SpringMvc操作方式
规定:方法的参数必须和页面中的name属性一致
public String findUser(String username,String password){
}