框架简介:
spring框架给J2EE开发者带来了诸多便利,尤其是经典的ioc和aop带来的对象设计以及扩展的极大便捷。
但是安卓平台始终缺失这一利器,然而官方android-spring的发布,居然发现和J2EE的spring大相径庭。
无奈之下,作者只能模仿J2EE版spring的功能,写了一个轻量的anspring。
设计原则:
力求和官方spring用法保持一致。
使用简洁。
核心spring:
实现了ioc的基本功能,包括 @AutoWired @Scope @Component @Qualifier @PostConstruct @PreDestroy
暂时未实现applicationContext.xml,
使用@Configuration,以标注的形式实现配置,包含@ConponentScan @Import @PropertySource @Value @Bean
由于android对cglib的不支持(也许认识有误),aop没有实现。只实现了不完善的 @Transaction
外围工具集:
一个轻量级 Logx框架,去掉了讨厌的tag,直接Logx.d(...),tag自动生成(类名-方法名-行数), 并支持单个日志文件/日期划分日志文件/体积划分日志文件
ActivityInject/SystemInject 对R.id 和按钮事件 等的注入,下个版本拟支持自定义解析器
AndroidUtils 简化alert()等android相关常用操作
详细用法:
https://github.com/liujingjing5/anspring/wiki/%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3
列子代码:
public class MainActivity extends Activity{ @R_Id(R.id.button1) //注入按钮id Button btn2; @Autowired //以名称注入bean @Qualifier("manServiceImp1") ManService manService; @Autowired //以类型注入bean AndroidUtils androidUtils; @Autowired XiaoMing xm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SpringUtils.load(this,MyConfigure.class); //用MyConfigure的配置,加载spring容器 BeanInjecter.inject(this); //注入this的成员变量(bean对象) ActivityInjecter.inject(this); //注入this中的成员变量(android特有对象) Logx.d("加载成功"); } @Override protected void onDestroy() { SpringUtils.unload(); super.onDestroy(); } @OnClick({R.id.button1,R.id.button2}) //给按钮注册事件 public void onClick(View v) { androidUtils.alert("消息", xm.getName(), "确定", null); } @OnLongClick(R.id.button2) public boolean onLongClick() { androidUtils.toast("长按"); return false; } @AfterStart(1000) //启动后延时加载 private void afterViewTest(){ androidUtils.toast("延时一秒"); } }
@Configuration //相当于applicationContext.xml @PropertySource("assets:test.ini") //读取配置文件 public class MyConfigure implements ConfigurationTemplate { @Override @Bean //相当于applicationContext.xml中的<bean></bean> public DataSource dataSource() { DataSource dataSource = new DataSource(){ @Override protected SQLiteDatabase injectSQLiteDatabase() { SQLiteOpenHelper helper = new SQLiteOpenHelper(SpringUtils.getSpringContext().getContext(), "spring.db", null, 1) { @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub } }; SQLiteDatabase db = helper.getWritableDatabase(); return db; } }; return dataSource; } @Override @Bean public SqliteTemplate sqliteTemplate(DataSource dataSource) { SqliteTemplate template = new SqliteTemplate(dataSource); return template; } @Override @Bean public TransactionManager transactionManager(DataSource dataSource) { TransactionManager tm = new TransactionManager(dataSource); return tm; } @Bean public AndroidUtils androidUtils(){ return new AndroidUtils(SpringUtils.getSpringContext().getContext()); } }
@Component //表明这是一个bean public class XiaoMing { String name; @Value("shadiao") String wahao; @Value("${rc.xiaoming.age}") //使用配置文件注入 int age; @Autowired //参数注入的方式 public XiaoMing(@Value("${rc.xiaoming.name}")String name) { this.name = name; } @Override public String toString() { return "XiaoMing [name=" + name + ", wahao=" + wahao + ", age=" + age + "]"; } @PostConstruct //spring 加载完毕后执行 public void sayHello(){ Logx.d("hello:",this.toString()); } @PreDestroy //spring destroy前执行 public void saybye(){ Logx.d("bye:",this.toString()); } }
安卓系统手机客户端APP的安装 我们要把MEApp下载到手机上并且进行安装后才可以使用,MEApp的安装程序就在客户自己的服务器上,我们打开IE,在地址栏上输入http://服务器IP:端口/SSMISDIYWeb/ClientInstall.htm 就会出现如下图所示的下载页面: 1.1.1安卓APP的安装 如上图所示,我们点击“安卓App客户端下载”,即可开始下载
Linux 平台安装 SBT 通过通用的包安装 下载 ZIP 包或 TGZ 包解压 RPM 和 DEB RPM包 DEB包 注意: 请将任何和这两个包相关的问题反馈到sbt-launcher-package项目 issue Gentoo In the official tree there is no ebuild for sbt. But there are ebuilds to merge s
Windows 平台安装 SBT 通过 Windows 安装包安装 下载 msi 安装包并安装 通过通用的包安装 下载 ZIP 包或 TGZ 包解压 手动安装 参考手动安装 SBT
Mac 平台安装 SBT 通过第三方的包安装 注意:第三方的包可能没有提供最新版本,可以将相关任何问题反馈给包相关的维护者 通过 Macports 安装 $ port install sbt 通过 Homebrew 安装 $ brew install sbt 通过通用的包安装 下载 ZIP 包或 TGZ 包解压 手动安装 参考手动安装 SBT
第一章 SonarQube简介 1.1 SonarQube介绍 Sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量 通过插件形式,可以支持包括 java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy,HTML,Python,PHP,XML等等二十几种编程语言的代码质量管理与检测 Sonar可以从以下七个维度检测代码质量 不遵循代码标准 sonar可以
利用 cocos2d-x 实现多平台高仿微信打飞机游戏。平台包括:iOS、Mac OS 和 Anroid。代码基于@JustDifferent__ 发布于 code4app 的代码 “高仿微信打飞机”(http://code4app.com/ios/高仿微信打飞机/521495136803fa1d5f000001)移植而来。 作者说:需要在代码工程中加入cocos2d-x的库才能运行demo。 请