Welcome to

Vcode

首页 / J2EE / Spring 学习的小知识点

Spring 学习的小知识点

AOP:

解决代码重复

关注点分离

分离非功能与功能性


Aspect

Advice 通知

Target 被通知对象 

Proxy

连接点: 哪个方法的执行前后做出的影响  方法为该方法执行前的位置

切点:


Joinpoint 可获取方法信息


@Order(1,2...)切面的优先级

切面 加 @Aspect @@Component

配置文件     <aop:aspectj-autoproxy></aop:aspectj-autoproxy>


定义方法 声明切面表达式

@Pointcut(“execution(public int<--Object> package.classname(--或 * )(参数列表(--type..或(--..两点)))))”)

public void 切面表达式方法();

优点:集中管理

Appliationcontext WebAppcationcontext


接口 beanPostProcessor  before after 方法再init方法前后调用  :后处理器

返回值 为一个bean 可修改 或生成一个新得bean


bean的生命周期


 1 构造器 调用 创建bean

2 为bean 赋值

3 before 方法

4 init 方法

5 befor 发法

//。。。

6 desroy



工厂模式 创建bean


静态工厂:调用返回bean的示例的静态方法


无需创建 静态工厂方法 直接调用


配置: 配置bean 实例  属性:factory-method=“ 静态工厂方法()  {return bean}”  


示例工厂方法: 需要创建 工厂本身 再调用实例方法 返回bean的实例s

<bean  工厂实例/>

<bean  factory-bean=”实例工厂“ factory-method=“工厂方法”/>






接口 FactoryBean 创建bean 的实例

1实现接口

2 三个方法: 1 返回bean的对象 2 返回bean的类型Class<?>  3 

3 配置文件 

<bean id=" "  class="上述实现接口的类' ><property 属性值name ,values/></bean>

实际 返回的是factorybean的getobject 返回的实例





基于注解的方式 配置bean


bean---------->IOC容器


组件扫描:从类路径下classpath 自动扫描 侦测和实例化具有特定主角的组件


@Component 基本注解 标识一个受sping管理的组件

@Respository :标识 持久层的组件 //Dao

@Service 标识服务层(业务)的组件

@Controller :标识 表现层的组件

命名策略:非限定类名 第一个字母小写 如useService

@###(value="beanname")

在一定的含以上来说 可以混用


基于注解使用 要扫描

<context:component-scan>:

-base-package=" ...  ,  ..."  逗号分割多个包 子包也可以被扫描到

-resource-pattern="##(serivce等)/*.class" 指定扫描的资源 


子属性:

<context-exclude-filter type="annotation" expression="path"> 不包含什么

<context-include-filter type="annotation" ex...>只包含 需要配合:user-defaut-filters="false"使用

支持多种类型的过滤表达式 

annotation  assignable等



bean和被bean之间的关系:

<context:component-scan> 会自动注册AutowiredAnnotationBeanProcessor实例,

该实例自动装配 具有下列注解:


@Autowired(兼容类型的单个bean属性  构造器 可使用普通字段  带参数的方法)

required=false 填上 没有实例也能运行

存在多个兼容的属性:

-----@Qualifier(“ ”)装配指定的bean 可加入参的前


@Resource 

@Inject(这2个类似与Autowired)

的属性


一切都基于 在ioc容器 中存在bean的实例



泛型依赖注入<T>DI

BaseSerive{add(){}}-------依赖与BaseRepositiory<T>(@Autowired) 父类注入 实际子类注入

User{}

(@Service)UserSerivce extend BaseSerive<User>

(@Repositiory)UserRepositiory extend BaseRepositiory<User>





本文暂无评论

发表评论

您的电子邮件地址不会被发布。

>> <<