First to create channel programmatically (there are many different types) you can refer to this chapter of reference manual: http://static.springsource.org/sprin...mplementations
At the end of the day Message Channel is just a bean which means your question is really about: Can I register a bean dynamically?
Yes you can and there are more then one way of doing it and they depend on when do you know about weather you need to create a cannel or not?
For example if you know about the need for a channel during the initialization phase of ApplicationContext, then you can register BeanFactoryPostProcessor and have it create and register definition of a bean (channel).
If realization for a channel comes at the usage phase of ApplicationContext, then you can get the reference to ApplicationConetxt and register newly created channel:
MessageChannel myChannel = . . .