@tsdi/boot
v6.0.48
Published
Application bootstrap. base on AOP, Ioc container, via @tsdi/core .
Downloads
170
Maintainers
Readme
packaged @tsdi/boot
This repo is for distribution on npm
. The source for this module is in the
main repo.
@tsdi/boot
: DI Module manager, application bootstrap. base on AOP, Ioc container, via @tsdi/core
.
version 5+ of @ts-ioc/core
tsioc
Install
npm install @tsdi/boot
// in browser
npm install @tsdi/platform-browser
// in server
npm install @tsdi/platform-server
add extends modules
boot
DI Module manager, application bootstrap. base on AOP.
@DIModule
DIModule decorator, use to define class as DI Module.@Bootstrap
Bootstrap decorator, use to define class as bootstrp module.@Boot
Boot decorator, use to define class as startup service for application.@Message
Message decorator, for class. use to define the class as message handle register in global message queue.
use bootstrap
import { DIModule, BootApplication } from '@tsdi/boot';
export class TestService {
testFiled = 'test';
test() {
console.log('test');
}
}
@DIModule({
providers: [
{ provide: 'mark', useFactory: () => 'marked' },
TestService
],
exports: [
]
})
export class ModuleA {
}
@Injectable
export class ClassSevice {
@Inject('mark')
mark: string;
state: string;
start() {
console.log(this.mark);
}
}
@Injectable
export class Person {
constructor(name: string){
}
}
// binding component.
@Component({
selector: 'you component',
template: {
filed: 'binding: myfield'
}
})
export class MyComponent implements AfterInit {
@Input()
myfield: string;
@Input()
use: Person;
onAfterInit(): void | Promise<void> {
// todo inited field..
}
}
@Aspect
export class Logger {
@Around('execution(*.start)')
log() {
console.log('start........');
}
}
@DIModule({
imports: [
AopModule,
ModuleA
],
providers: [
Logger,
ClassSevice
],
bootstrap: ClassSevice
})
export class ModuleB {
constructor(test: TestService, @Inject(INJECTOR) private injector: ICoreInjector) {
// the injector is the module injected in.
console.log(test);
test.test();
// console.log(injector);
// console.log(pools);
}
}
BootApplication.run(ModuleB)
- use @Bootstrap main to boot application
@Bootstrap({
imports: [
KoaModule
],
bootstrap: MvcServerToken
})
class MvcApi {
constructor() {
console.log('boot application');
}
static main() {
console.log('run mvc api...');
// use your builder
BootApplication.run(MvcApi);
}
}
Documentation
Documentation is available on the
- @tsdi/ioc document.
- @tsdi/aop document.
- @tsdi/core document.
- @tsdi/boot document.
- @tsdi/components document.
- @tsdi/compiler document.
- @tsdi/activities document.
- @tsdi/pack document.
- @tsdi/typeorm-adapter document.
- @tsdi/unit document.
- @tsdi/unit-console document.
- @tsdi/cli document.
packages
@tsdi/cli @tsdi/ioc @tsdi/aop @tsdi/core @tsdi/boot @tsdi/components @tsdi/compiler @tsdi/activities @tsdi/pack @tsdi/typeorm-adapter @tsdi/unit @tsdi/unit-console
License
MIT © Houjun