从Android开发者角度理解Spring

学Java Spring框架也有一段时间了。从陌生到熟悉,到能轻易说出其功能来。这里也记录一下,有不对的地方还烦请指正一番。

这里大概的说一下其使用方式:

spring在项目工程里面有两种使用,一种是XML配置,一种是代码注解方式。

(一)通过XML配置

XML配置更像是Android MVC中的XML中各种view,只不过spring是已经初始化了的,而Android xml中的view还需要在代码里进行findviewByid找到view才可进行初始化。

在Java中,spring是类的初始化,即 new Obj();的操作,在Android中,感觉类的概率比较弱化,大多是Android
四大组件的使用(Activity、Service,BroadCastreceiver,ContentProvider),用得多的也就是ActivityService而已。可能我作为一个Android 开发者,对设计模式用得不多吧。

(二)通过注解

先说说Android中使用的比较多的注解之黄油刀Butterknife,butterknife在Activity的OnCreate方法中进行了初始化,然后在其控件上进行绑定xml中的id,就相当于进行了findviewById操作了。这就进行了很多繁琐的操作。

	@BindView(R.id.fl_root)
	FrameLayout frRoot;
	@BindView(R.id.videoView)
	BaseVideoView mVideoView;
	@BindView(R.id.danmakuView)
	DanmakuView mDanmakuView;

再来说说Java中使用spring进行的注解,在我的理解中,spring就是帮助对象new了一下,管理Obj的生命周期,初始化方法这类似的,毕竟就目前的状况,自己学的还是浅了。spring的注解生效需要在xml中进行配置,然后再根据情况使用相对应的注解(行业约定规范)


@Autowired

当Spring发现@Autowired注解时,将自动在代码上下文中找到和其匹配(默认是类型匹配)的Bean,并自动注入到相应的地方去

@Resource
@Service
@Component
@Controller

注解的方式有多种多样,注解到类成员变量上、类方法上、类上等等。

总之,使用spring注解需要下面两步:

(一)使用注解之前要开启自动扫描功能,其中base-package为需要扫描的包(含子包)。

<context:component-scan base-package="cn.test"/> 

(二)常用注解

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
@Scope注解 作用域
@Lazy(true) 表示延迟初始化
@Service用于标注业务层组件、 
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件。
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Scope用于指定scope作用域的(用在类上)
@PostConstruct用于指定初始化方法(用在方法上)
@PreDestory用于指定销毁方法(用在方法上)
@DependsOn:定义Bean初始化及销毁时的顺序
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用
@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
@PostConstruct 初始化注解
@PreDestroy 摧毁注解 默认 单例  启动就加载
@Async异步方法调用

关注「蛇崽网盘教程资源」公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。

更多资源请访问:

超详细图文搭建个人免费博客

在微信后台回复「130个小程序」,即可免费领取享有导入就能跑的微信小程序

在这里插入图片描述


版权声明:本文为xudailong_blog原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。